IP地址判断有效性
发布时间:2020-12-16 07:48:16 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #include "IPAddressValid.h"#include stdio.h#include iostreamusing namespace std;bool isOnePartValid(const char* cOnePartIPAddr,int len)//判
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 #include "IPAddressValid.h" #include <stdio.h> #include <iostream> using namespace std; bool isOnePartValid(const char* cOnePartIPAddr,int len)//判断一个字段是不是合法 { if (NULL == cOnePartIPAddr || len <= 1) { return false; } if ('0' == cOnePartIPAddr[0] && 2 != len)//以0开头的字段不为0非法 { return false; } int ipAddr =0; int iCur = 0; while (' ' != cOnePartIPAddr[iCur]) { if ('0'<= cOnePartIPAddr[iCur] && cOnePartIPAddr[iCur] <='9') { ipAddr = ipAddr*10 + cOnePartIPAddr[iCur]- '0'; } else { return false; } iCur++; } if (ipAddr >= 0 && ipAddr <=255) { return true; } else { return false; } } bool isIPAddressValid(const char* pszIPAddr) { // 请在此处实现 if (NULL == pszIPAddr) { return false; } int l = strlen(pszIPAddr); if (l <7 || l > 15) { return false; } int iCur =0; int iIpLen =0; while (' ' == pszIPAddr[iCur])//去除前面空格 { iCur++; iIpLen++; } int begin = iCur; while (' ' != pszIPAddr[iCur]) { iCur++; iIpLen++; } int end = iIpLen; for (int i = iIpLen-1 ; i >= begin; --i)//去除字符串尾部的空格 { if (' ' == pszIPAddr[i]) { end--; } else { break; } } char cOnePart[128]; int count = 0; for (int i = begin; i <= end; i++) { memset(cOnePart,sizeof(char) * 128); int iOnePartCur =0; int onePartLen =0; while (i < end && '.' != pszIPAddr[i]) { cOnePart[iOnePartCur] = pszIPAddr[i]; iOnePartCur++; i++; onePartLen++; } cOnePart[iOnePartCur] = ' '; onePartLen++; if (!isOnePartValid(cOnePart,onePartLen)) { return false; } else { count ++; } } if (4 == count ) { return true; } else { return false; } } int main() { const char* pazIPAddress = "100.0.0."; bool isIP = isIPAddressValid(pazIPAddress); return 0; } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |