将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;
}

posted on 2011-09-02 00:30  小橋流水  阅读(464)  评论(0编辑  收藏  举报

导航