#include
using namespace std;
long ip2long(const char *ip)
{
long l = 0, lt = 0;
char str[4];
int len = strlen(ip);
int k = 0;
for (int i = 0; i <= len; i++)
{
if (ip[i] != '.' && ip[i] != '\0')
{
str[k++] = ip[i];
}
else
{
str[k] = '\0';
lt = atol(str);
l = (l << 8) + lt;
k = 0;
}
}
return l;
}
int main()
{
cout << ip2long("127.0.0.1") << endl;
system("pause");
return 0;
}
我们知道ip其实在计算机内部是用一个u_int就可以存储的,但是为了便于记忆,平时表示的时候采用的是点分十进制,那如果给你一个ip,你如何将他转化成一个long呢? 简单写了一个: