将ip转成long
我们知道ip其实在计算机内部是用一个u_int就可以存储的,但是为了便于记忆,平时表示的时候采用的是点分十进制,那如果给你一个ip,你如何将他转化成一个long呢?
简单写了一个:
#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;
}
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名小橋流水(包含链接)。如您有任何疑问或者授权方面的协商,请给我发邮件。