Dim ip = IPAddress.Parse("192.168.1.3")
Dim mask = IPAddress.Parse("255.255.255.0")
' next lines won't compile
Dim networkAddress = ip And mask ' would produce 192.168.1.0
Dim broadcastAddress = ip Or (Not mask) ' would produce 192.168.1.255
所以在我开始在子类上实现这种类型的功能之前:我错过了一些明显的东西吗?有没有理由为什么这个没有实现,我忽略了?
我承认,在我的网络课程中,我可能没有像我应该那样多关注。
修改
我想出了这段代码:
Dim ip = IPAddress.Parse("192.168.1.3")
Dim mask = IPAddress.Parse("255.255.255.0")
Dim ipUnsignedInteger = BitConverter.ToUInt32(ip.GetAddressBytes, 0)
Dim maskUnsignedInteger = BitConverter.ToUInt32(mask.GetAddressBytes, 0)
Dim networkAddressUnsignedInteger = ipUnsignedInteger And maskUnsignedInteger
Dim networkAddress = New IPAddress(networkAddressUnsignedInteger)
Dim broadcastAddressUnsignedInteger = ipUnsignedInteger Or (Not maskUnsignedInteger)
Dim broadcastAddress = New IPAddress(broadcastAddressUnsignedInteger)
它可以工作,但对于我来说显而易见的东西,这是一个令人难以置信的额外代码!为什么这不是框架的一部分?!
答案 0 :(得分:0)
Dim networkaddress2 As New IPAddress(ip.Address And mask.Address)
Dim broadcastAddress2 = New IPAddress(CUInt(ip.Address) Or (Not CUInt(mask.Address)))
请注意,不推荐使用IPAddress.Address。