使用IPAddress.TryParse()方法校验IP地址时不得不知的“坑”
来源:互联网 发布:绘画人偶软件 编辑:程序博客网 时间:2024/06/05 16:54
使用IPAddress类的静态方法TryParse可以校验IP地址。具体用法如下所示。
IPAddress ip;IPAddress.TryParse("8", out ip);Console.WriteLine(ip);
执行上面的代码,会得到“0.0.0.8”的输出。
但是实际使用中,往往这不是我们想要的。使用该方法校验用户输入的ip地址就不太合理。一般来说,ip地址格式应该是”xxx.xxx.xxx.xxx”,而使用IPAddress类的静态方法TryParse校验ip地址时,随意输入一个整形字符串,也校验通过了。简直让人一脸懵逼。对于这种需求下,可以使用正则表达式来校验ip地址。下面是完整代码。
public static bool IPCheck(string IP){ return Regex.IsMatch(IP, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$");}
那么类IPAddress的静态方法TryParse的判断逻辑是怎样的呢?
TryParse方法先判断字符串是否能转换成uint类型数据,不能则返回false,转换成功则将uint数据转换成32位二进制数据,每八位二进制数据转换成十进制数,便转换成了最终的ip地址。像例子中的8转换成32位二进制数据为00000000000000000000000000001000,转换成ip地址为0.0.0.8。
看来以后校验ip地址还是老老实实使用正则吧。
0 0
- 使用IPAddress.TryParse()方法校验IP地址时不得不知的“坑”
- TryParse()方法的使用
- IPAddress类的使用
- C#判断IP地址是否合法函数-使用正则表达式-2个,还有IPAddress
- 不得不知的小常识
- 十个不得不知的算法
- 站长不得不知的网站大全
- 不得不知的jQuery要点
- MFC里面ipaddress控件:获取里面的ip地址为字符串型
- Android开发中的一些不得不知的坑(一)
- Android 开发中一些不得不知的坑(二)
- VC++ ipaddress控件的使用
- int.TryParse的使用
- Leetcode: restore ipAddress 恢复ip地址,找出所有可能性
- 【C#】校验IP地址的正则表达式
- Python IP地址合法性的校验
- IP地址的正则表达式校验
- javascript做的数据校验(校验IP地址等)
- 如何用excel求解器solver求出最优化解
- 关于window.location的各属性
- 布局样式属性
- 人脸检测--libfacedetection
- android中的recyclerview的基础学习(二)
- 使用IPAddress.TryParse()方法校验IP地址时不得不知的“坑”
- 【NLP】机器翻译常用评价标准 (BLEU & METEOR)
- git命令行学习小结
- 频率域滤波基础之三(读数字图像处理学习halcon)
- jni
- VS 调试动态库
- Integer包装类常用方法
- java中“==”和equal区别
- 生成一个唯一的id