ip -> int
// -- ip 转 int int ip2int(string ipStr, int & ipInt) { int retval = -1, tokenInt = 0, i = 3;; char * token = NULL; vector<string> str_arr, str_tmp; ipInt = 0; if(ipStr.empty()){ printf("---> ipStr is empty in ip2int, error...\n"); goto DONE; } str_arr = split(ipStr, "."); for(i = 0; i < str_arr.size(); ++i){ sscanf(str_arr[i].c_str(), "%d", &(tokenInt)); ipInt += tokenInt * pow(256, i); } retval = 0; DONE: return retval; }
int -> ip
__inline__ static char * __get_ip(char * buffer, unsigned int ip) { unsigned char * ptr = (unsigned char *)&ip; #ifdef WIN32 _snprintf(buffer, 16, "%d.%d.%d.%d", (unsigned int)ptr[0], (unsigned int)ptr[1], (unsigned int)ptr[2], (unsigned int)ptr[3]); #else snprintf(buffer, 16, "%d.%d.%d.%d", (unsigned int)ptr[0], (unsigned int)ptr[1], (unsigned int)ptr[2], (unsigned int)ptr[3]); #endif buffer[15] = 0; return buffer; }