我注意到 System.Net.IPAddress 有 Address 属性 (System.Int64) 和构造函数,也接受 Int64 数据类型。因此,您可以使用它将 IP 地址转换为数字格式(虽然不是 Int32,但是是 Int64)。
看一下 .Net 的 IPAddress.Parse 中一些疯狂的解析示例: (MSDN) "65536" ==> 0.0.255.255 "20.2" ==> 20.0.0.2 "20.65535" ==> 20.0.255.255 "128.1.2" ==> 128.1.0.2
int
也无法容纳大于127.255.255.255
的地址,例如广播地址,因此请使用uint
。 - Saeb AminiNetworkToHostOrder
来反转字节。且int可以包含大于127.255.255.255
的地址;它们以负数形式存储。当将类型转换为int时,Address
属性中大于2^31的数字,即long
类型,会变成负数;将其转换为int是为了调用NetworkToHostOrder
,并且不会截断数字。 - Barry Kelly