2012-09-24 51 views
3

我有以下情形:ip地址[试用]解析解析192.168至192.0.0.168

IPAddress ip; 
IPAddress.TryParse("192.168", out ip);  
if(ip == null){//do something with IP} 

我希望解析失败,而是被解析为“192.0.0.168”。我在这里错过了什么? (IPAddress.Parse的工作原理相同)

回答

6

documentation,其包括给你的类似的例子,是相当清楚的:

份的(每个部分用句点分隔)在ipString 数量决定如何IP地址被构建。一部分地址是 直接存储在网络地址中。一个两部分地址,用于指定A类地址的方便的 ,将前导部分放在第一个 字节中,后端部分放在 网络地址的最右边三个字节中。一个三部分地址,便于指定B类地址,它将第一部分放在第一个字节中,第二个部分放在第二个字节中,最后一部分放在网络地址最右边的两个字节中。

Number of parts and example ipString  IPv4 address for IPAddress  
==================================================================== 
1 -- "65536"        0.0.255.255 
2 -- "20.2"        20.0.0.2 
2 -- "20.65535"       20.0.255.255 
3 -- "128.1.2"       128.1.0.2 
+0

这看起来很像Odeds答案.. :) – Default

+5

当然重要,我们都复制的文件:)。 –

4

类型http://192.168到浏览器的地址栏中。怎么了?

这是预期的行为。

7

Parse文档:

份的(每个部分用句点分隔)在ipString的数量确定的IP地址是如何构造的。一部分地址直接存储在网络地址中。两部分地址(便于指定A类地址)将前导部分放在第一个字节中,后部分放在网络地址的最右边三个字节中。三部分地址,便于指定B类地址,将第一部分放在第一个字节中,第二部分放在第二个字节中,最后一部分放在网络地址的最右边两个字节中。例如:

Number of parts and example ipString | IPv4 address for IPAddress 
1 -- "65536"       | 0.0.255.255 
2 -- "20.2"       | 20.0.0.2 
2 -- "20.65535"      | 20.0.255.255 
3 -- "128.1.2"      | 128.1.0.2 
+0

这看起来很像John Koerners的答案.. :) – Default