判断IP合法性和纯数字合法性
来源:互联网 发布:大闹天宫数据库修改 编辑:程序博客网 时间:2024/05/17 08:35
1. 判断IP地址是否合法
描述:下面封装了两个函数,判断字符串中的IP是否合法。
#include <string>using namespace std;bool CSettingDlg::isok(string str,int num) { int len=str.length(); int d=0; if(str=="0") return true; if(len>1&&str[0]=='0') return false; //有前导0,不合法 for(int i=0;i<len;i++) { if(!isdigit(str[i])&&str[i]!=' ') return false; if(str[i]==' ') { if(num==2||num==3) return false; else { if(num==1&&i!=0&&str[i]==' ') return false; if(num==4&&i!=len-1&&str[i]==' ') return false; } } if(isdigit(str[i])){ d=d*10+str[i]-'0'; } } if(d<0||d>255) return false; return true; } bool CSettingDlg::isIPAddressValid(const char* pszIPAddr) { // 请在此处实现 if(pszIPAddr==NULL) return false; string str=string(pszIPAddr); int len=str.length(); int coma_num; //=numberofComa(str); //计数点号,如果点号的个数不等于3个则为非法 //在str最后加上一个小数点,为了统计方便 str.append("."); //下面开始分割字符串,用点号进行分割,得到每个字符串,如果字符串,不合法,则返回false,不合法情况包括,字符串中间有空格,字符串有前导0,字符串中数字不再0-255之间,还有字符串为空,,这些都是不合法 //string::iterator iter_pre=str.begin(),iter_post; int iter_pre=0; int iter_post=str.find('.',iter_pre); if(iter_post==str.npos) return false; coma_num=0; while(iter_post!=str.npos) { coma_num++; string substr=str.substr(iter_pre,iter_post-iter_pre); if(substr=="") return false; if(!isok(substr,coma_num)) //如果不合法,跳出,并返回false { return false; } iter_pre=iter_post+1; iter_post=str.find('.',iter_pre); } if(coma_num!=4) return false; return true; }
调用:
if (!isIPAddressValid(m_strIP.GetBuffer())){AfxMessageBox("IP不合法!!!");return;}
2. 纯数字合法性描述:判断字符串中的内容是否都是数字。
if(!(strPort.SpanIncluding(_T("0123456789")) == strPort)){AfxMessageBox("端口不合法,不是纯数字!!!");return;}
阅读全文
0 0
- 判断IP合法性和纯数字合法性
- JS判断IP合法性
- Python判断IP合法性
- ip的合法性判断
- js判断数字的合法性
- js 正则判断数字合法性
- Java判断IP地址合法性
- [javascript]判断ip地址合法性
- 判断IP地址的合法性
- 判断IP地址的合法性
- 判断数字合法性的正则表达式
- javascript 正则表达式判断IP地址合法性
- C 判断IP地址的合法性
- python怎么判断IP地址的合法性
- 判断IP地址的合法性(Java)
- 判断IP地址的合法性(Java)
- C++判断IP地址字符串的合法性
- IP地址合法性检查
- 定义一个ArrayList集合,存储一批书籍,书籍具有书名、作者、价格三个属性, 键盘录入一个书名时,显示该书籍的详细信息。
- Oracle之表的种类(heap,partition table,glable temp table,orgination index table,cluster sort hash table)
- mapreduce 统计流量
- spring之使用表达式定义切入点
- u-boot第二阶段分析(一)
- 判断IP合法性和纯数字合法性
- jqueryeasyui datagrid
- Vue.js学习系列六——Vue单元测试Karma+Mocha学习笔记
- (1) 初识birt(免费开源报表软件)-建立第一个birt report项目
- 日常linux使用笔记
- eclipse提交代码至GitHub
- 剑指offer--面试题3:数组中重复的数字
- Caffe在Ubuntu 14.04 64bit 下的安装------pycaffe 配置
- android 利用Gson生成json数据