日期:2014-05-18  浏览次数:21323 次

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

------解决方案--------------------
应当是192.168.0.90,不能输入090这样的数据。
------解决方案--------------------
一个正确写法IP地址的字符串,经过Parse之后就会生成一个IPAddress对象,里面会存储一个长32位的整型数字,还会存一些协议之类的数据
------解决方案--------------------
IPAddress类:IPAddress 类包含计算机在 IP 网络上的地址。其Parse方法可将 IP 地址字符串转换为 IPAddress 实例。
IPAddress myIP = IPAddress.Parse("192.168.0.1");
参考
------解决方案--------------------
使用合法的ip地址 192.168.0.10等这种格式
------解决方案--------------------
引用楼主 zouahaijun 的帖子:
System.Net.IPAddress.Parse方法的参数应该如何去理解,我给参数传个192.168.0.090就会抛出异常。
我不明白是怎么回事想请教下大家,不要笑我,初学!!呵呵

------解决方案--------------------
C# code

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

------解决方案--------------------
那为什么192.168.0.090 !=192.168.0.90 呢?
_______________
因为192.168.0.090 不是一个IP地址,IP地址是一个字符串,并不是一个整个的数字。
------解决方案--------------------
你使用TryParse方法;

那为什么192.168.0.090 !=192.168.0.90 呢?

你在电脑上面设置IP地址的时候允许你输入“090”吗?
------解决方案--------------------
解析数字的时候0开头的数字被视为八进制,八进制里是没有8和9的,090当然就会抛异常。
------解决方案--------------------
探讨
引用:
解析数字的时候0开头的数字被视为八进制,八进制里是没有8和9的,090当然就会抛异常。

那我现在应该如何做才能将192.168.0.090转换为192.168.0.90呢?