翼度科技»论坛 编程开发 .net 查看内容

C#判断IP地址是否正确

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
参考文章:C# 判断ip地址是否正确
楼主提供的方法是通过IPAddress.TryParse()来判断字符串是否为有效地址,如果能解析IP地址,则为true。这个方法也蛮巧妙的,判断IP地址我第一反应是根据'.'分割字符串然后每个字符挨个判断,手动写格式判断啥的,效率低还麻烦,容易出错,看到楼主那个还挺好玩的,就试了一下。发现了一些问题:
IPAddress.TryParse()方法
  1.         string ipStr = this.txt_IPAddress.Text;
  2.         System.Net.IPAddress ip;
  3.         if (System.Net.IPAddress.TryParse(ipStr,out ip))
  4.         {
  5.             MessageBox.Show("IP地址合法");
  6.         }
  7.         else
  8.         {
  9.             MessageBox.Show("IP地址不合法");
  10.         }
复制代码
这个方法没办法对输入的IP的格式进行判断,测试字符串是`10.1`在测试过程中是可以成功转换的,但是显然是不合理的。我觉得这个方法适合输入的IP地址的格式始终正确。楼主评论区中有人提出可以用正则表达式来判断,既能判断格式也能判断数值,一举两得。
IsMatch()方法
  1.         System.Text.RegularExpressions.Regex rx = new System.Text.RegularExpressions.Regex(@"((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))");
  2.         if (rx.IsMatch(ipStr) == false)
  3.         {
  4.                 MessageBox.Show("IP地址不合法");
  5.                 return;
  6.         }
  7.         else
  8.         {
  9.                 MessageBox.Show("IP地址合法");
  10.         }
复制代码
Perfect!
来源:https://www.cnblogs.com/BoiledYakult/archive/2023/02/06/17094787.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具