【发布时间】:2012-04-29 03:50:34
【问题描述】:
如何将网络掩码转换为特定的网络掩码。
示例:127.0.0.0/16 转换为 /24 网络掩码。
它应该输出如下内容:
127.0.0.0/24
127.0.1.0/24
127.0.2.0/24
127.0.2.0/24
等等。一直到 127.0.255.0/24。
这如何通过 PHP 来实现?我找到了这个工具:http://jodies.de/ipcalc 它是用 PERL 编码的。如何使用 PHP 获得类似的功能?
我发现了这个:http://jasonkolpin.com/classes/ipcalc/demo.php 虽然它似乎坏了.. 可能会尝试修复它。
更新已解决:我基本上运行:$exec = shell_exec("/usr/local/bin/ipcalc 127.0.0.0/16 24 -b -n"); 并解析出 Network: 字段。这基本上将 127.0.0.0/16 转换为所有 /24s。
确保主机上安装了 ipcalc 以完成此操作。你可以在 CentOS 中使用 yum install ipcalc,在 Ubuntu 中使用 apt-get install ipcalc,在 FreeBSD 中使用 cd /usr/ports/net-mgmt/ipcalc/ && make install clean :)
【问题讨论】: