以下代码是在学习过程中,网上查到的。如果有版权问题,请联系删帖!!!
在网上找到了两种方法
一种是直接使用 .Net的类,测试后发现比如输入数字 8,
会自动变成 0.0.0.8
而这种格式并非我们所要的。
所有直接使用.Net类会存在这样的坑
后面用了正则表达式的方法,亲测是可用的。
下面就是所有代码
作为一个正在学习的人,网上看到的很多代码都是某些
功能的部分代码。让人摸不着头脑。
所以放上所有代码
使用正则表达式(亲测可用)
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 //引用判断IP地址的命名空间System.Text.RegularExpressions; 10 using System.Text.RegularExpressions; 11 namespace C_sharp连接S7_1200PLC 12 { 13 public partial class Form1 : Form 14 { 15 public Form1() 16 { 17 InitializeComponent(); 18 } 19 20 private void btnIpAddressWrite_Click(object sender, EventArgs e) 21 { 22 //获取输入的IP信息 23 string strIpAddress = txtIpAddress.Text; 24 if (isIp(strIpAddress.Trim())) 25 { 26 MessageBox.Show("Ip地址正确"); 27 28 } 29 else 30 { 31 MessageBox.Show("Ip地址错误"); 32 } 33 } 34 35 36 /// <summary> 37 /// 验证IP地址是否合法 38 /// </summary> 39 /// <param name="ip">要验证的IP地址</param> 40 /// <returns></returns> 41 public static bool isIp(string ip) 42 { 43 //如果为空,认为验证不合格 44 if(string.IsNullOrEmpty(ip)) 45 { 46 return false; 47 } 48 49 //清除要验证字符传中的空格 50 ip=ip.Trim(); 51 52 //模式字符串,正则表达式 53 string patten = @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$"; 54 55 //验证 56 return Regex.IsMatch(ip,patten ); 57 } 58 } 59 }