string d = @"((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[0-1]?\d\d?)";
          string d1 = @"((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[0-1]?\d\d?$)";          
           Match g = Regex.Match(textBox3.Text,d);
            bool f = g.Success;
            if (!f)
            {
                MessageBox.Show("不符合");
            }这样做的 基本能判断很多IP,但是现在问题在这, 比如IP地址是:192.168.1.101 上面的验证是可以的, 输入的是大于255就不让通过, 但是现在这样的他去检测不出来 192.168.1.101.123.1.0000000.88888
现在要做的 在结尾判断下加粗的是我自己判断的,为什么达不到效果,真正的该怎么去做。
等待高手出现。

解决方案 »

  1.   

    IPAddress d;
    var result = IPAddress.TryParse("192.168.1.101.123.1.0000000.88888
    ", out d);
      

  2.   

    IPAddress d;
    var result = IPAddress.TryParse("192.168.1.101.123.1.0000000.88888", out d);
      

  3.   

    ^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$ //ip地址
      

  4.   

    try...            Regex reg = new Regex(@"(?n)^(([1-9]?[0-9]|1[0-9]{2}|2([0-4][0-9]|5[0-5]))\.){3}([1-9]?[0-9]|1[0-9]{2}|2([0-4][0-9]|5[0-5]))$");
                Match m = reg.Match(yourStr);
                if (!m.Success)
                {
                    richTextBox2.Text += "不符合";
                }
      

  5.   

    不知道IP中可以这样的不,cmd下显示我的是 192.168.1.3  不知道这样的 192.168.1.03或者 192.168.1.003 算不算IP啊,。
      

  6.   

    Regex reg = new Regex(@"^([1-9]|([1-9]\d)|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|([1-9]\d)|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|([1-9]\d)|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|([1-9]\d)|1\d\d|2[0-4]\d|25[0-5])$");这个可以排除 192.168.1.01 或者 192.168.1.1.1