驗證Netmask方式很簡單,只要判斷從netmask是否為連續1即可。
bool CheckNetMask (char* pszMask)
{
bool bFoundOne = false;
unsigned long lNetMask;
if (pszMask != NULL)
{
lNetMask = inet_addr(pszMask);
if (lNetMask == INADDR_NONE)
{
if (strcmp(pszMask, "255.255.255.255") == 0)
return true;
else
return false;
}
else
{
lNetMask = ntohl(lNetMask);
unsigned long ulMask = 1;
while (ulMask != 0)
{
if (lNetMask & ulMask)
bFoundOne = true;
else if (bFoundOne)
return false;
ulMask << 1;
}
return true;
}
}
else
return false;
}