ip地址与整数之间的转换

  1. 比如 A.B.C.D的换成整数就是:
  2. (((A*256)+B)*256+C)*256+D
  3. 整数转IP:
  4. 1409823698 = 540833D2 H  => 以字节分解: 54H 08H 33H D2H => 转回10进制: 84 08 51 210

bool is_Invalid = false;
int IPtoINT(string s){ 
    int result = 0;
    int shu[4]={0}; 
    int i,a=0,c=0,p=0;  
    for(i=0;i<s.length();i++)  
    {  
        if(s[i]!='.' && s[i]!='\0')  
        {  
            a=a*10+(s[i]-'0');  
        }
        else{  
            if(a>=0&&a<=255)  
            {  
                shu[p++]=a;
                a = 0;  
                c++;  
            }
           else  
            {
                is_Invalid = true;
                return 0;
            }                
        }  
    }  
    if(c!=3)  
    {
        is_Invalid = true;
        return 0;
    }  
    for(i=0;i<4;i++)
       result = result*256 + shu[i]; 
    return result;


string INTtoIP(long s)  

{   

     int shu[4];

     shu[0]=s&255;  

     shu[1]=(s&(255*256))/256;  

     shu[2]=(s&(255*256*256))/(256*256);  

     shu[3]=(s&(255*256*256*256))/(256*256*256); 

     return to_string(shu[0]) + '.' + to_string(shu[1]) +'.' + to_string(shu[2]) +'.'+ to_string(shu[3]); 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值