System.Net.IPAddress.Parse方法的参数应该如何去理解,我给参数传个192.168.0.090就会抛出异常。
我不明白是怎么回事想请教下大家,不要笑我,初学!!呵呵

解决方案 »

  1.   

    一个正确写法IP地址的字符串,经过Parse之后就会生成一个IPAddress对象,里面会存储一个长32位的整型数字,还会存一些协议之类的数据
      

  2.   

    IPAddress类:IPAddress 类包含计算机在 IP 网络上的地址。其Parse方法可将 IP 地址字符串转换为 IPAddress 实例。
    IPAddress myIP = IPAddress.Parse("192.168.0.1");  
    参考
      

  3.   


    抛异常是因为你传入的参数不能被正确转换,
    可以使用TryParse方法,包含了转换和是否转换成功了
    试下以下代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Windows.Forms;namespace ConsoleApplication1 {
        class Program {
            static void Main( string[] args ) {
                System.Net.IPAddress ipAddress;
                if( System.Net.IPAddress.TryParse( "192.168.0.90", out ipAddress ) ) {
                    Console.Write( "转换成功,您转换的IP地址为:" + ipAddress.ToString() );
                } else {
                    Console.Write( "转换失败" );
                }
                Console.ReadLine();
            }
        }
    }
      

  4.   


                System.Net.IPAddress ip;
                if (System.Net.IPAddress.TryParse("192.168.0.90", out ip))
                {
                    // to do
                }
      

  5.   

    那为什么192.168.0.090  !=192.168.0.90 呢?
    _______________
    因为192.168.0.090 不是一个IP地址,IP地址是一个字符串,并不是一个整个的数字。
      

  6.   

    使用IPAddress.Parse方法的时候,我想将192.168.0.010转换成192.168.0.10,但是转换后的结果是192.168.0.8
    这个是什么原因呢?大虾们,指导下?
      

  7.   

    你使用TryParse方法;那为什么192.168.0.090  !=192.168.0.90 呢?  你在电脑上面设置IP地址的时候允许你输入“090”吗?
      

  8.   

    在我的电脑设置为192.168.0.090后,就直接转换成了192.168.0.90。
    我就是想实现这样的效果!但是我用IPAddress.Parse方法一转换就成报异常,不知道是怎么回事,我查了下好像是说IPAddress使用的是IPV6的协议
      

  9.   


                string str = "192.168.0.090";
                byte[] ips = Array.ConvertAll<string, byte>(str.Split('.'), Convert.ToByte);
                str = string.Join(".", Array.ConvertAll<byte, string>(ips, Convert.ToString));
                IPAddress ip;
                if (IPAddress.TryParse(str, out ip))
                    Console.WriteLine(ip);