-------------------------------------------
0.*
10.0.0.0 - 10.255.255.255 class A
172.16.0.0 - 172.31.255.255 class B
192.168.0.0 - 192.168.255.255 class C
-------------------------------------------
局域网内地址一般是:
192.168.xxxxxxx
172.16--->172.31
10.xxxxxxxxxxx
0.xxxxxxxxxxx
bool UPNPNAT::IsLANIP(unsigned long nIP)
{unsigned char nFirst = (unsigned char)nIP;
unsigned char nSecond = (unsigned char)(nIP >> 8);
if (nFirst==192 && nSecond==168)
return true;
if (nFirst==172 && nSecond>=16 && nSecond<=31)
return true;
if (nFirst==0 || nFirst==10)
return true;
return false;
}
inet_addr()的功能是将一个点分十进制的IP转换成一个长整数型数(u_long类型)
原型:
in_addr_t inet_addr(const char *
cp);
参数:字符串,一个点分十进制的IP地址
返回值:
如果正确执行将返回一个无符号长整数型数。如果传入的字符串不是一个合法的IP地址,将返回INADDR_NONE。