IP address Check

来源:互联网 发布:电脑网络接口类型 编辑:程序博客网 时间:2024/05/20 23:02
typedef union MultiByteStruct  {//IP地址联合体  int iInt;   //int有符号整型  float fFloat;   //浮点数  UINT uInt;  //无符号整数  ULONG uLong;    //ULONG无符号整型  DWORD dwDword;  //DWORD有符号整型  WORD wWord[2];  //WORD无符号整型数组  UCHAR ucByte[4];    //无符号字符数组  char cByte[4];  //字符数组  }UNIONIP,*PUNIONIP;  //将字符串类型转为UINT类型  UINT IPStrToInt(CString IPStr)  {  UNIONIP IP;  int i,j=0;  IPStr.TrimLeft(_T(" "));  IPStr.TrimRight(_T(" "));  for (i=0;i<IPStr.GetLength();i++)  {  if (IPStr.GetAt(i) <_T('0') || IPStr.GetAt(i)>_T('9'))  if (IPStr.GetAt(i) == _T('.'))  j++;  else  return 0; }  if (j!=3)  {  if (!m_IpSourceWay){MessageBox(_T("配置的IP地址格式不正确"));}return 0;  }i=0;IPStr += _T(".");CString temp;for (int m=0;m<4;m++)  {temp = _T("");while (IPStr.GetAt(i) != _T('.'))  {  temp+=IPStr.GetAt(i);  i++;  }  i++;if (temp=="" || (UCHAR)wcstoul(temp,NULL,10) > 0xFF)  {if (!m_IpSourceWay){MessageBox(_T("配置的IP地址格式不正确"));    }return 0;  }  else  IP.ucByte[m] = (UCHAR)wcstoul(temp,NULL,10);  }return ntohl(IP.uInt);  }

0 0
原创粉丝点击