我的目标是在给定主机节点的 IP 和子网掩码的情况下计算定向广播地址。我知道,听起来像是家庭作业。一旦我推理出我的任务并将其归结为这一点,我就被自己逗乐了。不管怎样,我想,解决方案看起来会像这个问题中的那样,但我不是数学专业的,而且我的 C 很糟糕。我可以使用 PowerShell(首选)或 C# 示例来帮助我继续。
谢谢!
请参阅此处,了解一些用于 IP 数学计算的 PowerShell 函数,其中包括计算广播地址的函数。使用直接
-bNot
进行计算的问题在于它返回一个有符号 int64,这会弄乱任何需要无符号数字表示的按位运算。
这是我的,它使用来自
NetTCPIP的
Get-NetIPAddress
和来自 System.Net的
IPAddress
:
$NetIPAddress = Get-NetIPAddress -AddressFamily IPv4 -InterfaceIndex 25
[Net.IPAddress]::new((
(
[Net.IPAddress]::Parse($NetIPAddress.IPAddress).Address -band
[uint]::MaxValue -shr (32 - $NetIPAddress.PrefixLength)
) -bor (
[uint]::MaxValue -shl $NetIPAddress.PrefixLength
)
)).IPAddressToString