把10进制的ip地址转换为16进制,如可以把"192.168.2.33"转换为0xC0A80221...
int converIntAddToHexAdd(string &intIP,char *buffer) { int temp = 0; if(intIP.empty()) { cout << "The int IP address is empty." << endl; return -1; } for(string::iterator iter = intIP.begin();iter != intIP.end();iter ++) { if(*iter == ‘.‘)temp++; } if(temp != 3) { cout << "wrong format int IP address." << endl; return -1; } string newStr = intIP + ‘.‘; int beginMark = 0,midInt,offset = 0; for(int num =0;num < 4;num ++) { temp = newStr.find_first_of(‘.‘,beginMark); string tempStr = newStr.substr(beginMark,temp); beginMark = temp +1; midInt = atoi(tempStr.c_str()); if((midInt < 0)||(midInt > 255))return -1; if(midInt >= 16) sprintf(buffer + offset,"%x",midInt); else sprintf(buffer + offset,"0%x",midInt); offset += 2; } return 0; }
把10进制的ip地址转换为16进制,布布扣,bubuko.com
原文:http://blog.csdn.net/kld2009/article/details/23001679