#include
#include
#ifdef WIN32
#include
#else
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#ifdef WIN32
#pragma comment(lib,"wsock32.lib")
#endif
/*参数UINT32都为网络字节顺序。*/
/*IP地址是否合法, 合法返回TURE,失败返回FALSE*/
int netIpIsValid(_UINT32 IP)
{
int i;
struct in_addr addr;
addr.s_addr = IP;
i = inet_addr(inet_ntoa(addr));
if((i == 0)||(i == 0xffffffff))
return FALSE;
else
return TRUE;
}
/*MASK子网掩码是否合法, 合法返回TURE,失败返回FALSE*/
int netMaskIsValid(_UINT32 mask)
{
int i;
unsigned long ii;
i = netIpIsValid(mask);
if(i==TRUE)
{
ii = ntohl(mask);
if((ii|ii-1)==0xffffffff)
{
return TRUE;
}
}
return FALSE;
}
/*MASK子网掩码是否合法, 合法返回TURE,失败返回FALSE*/
int netMas