0

我正在用 PHP 制作一个网络监控程序。我希望能够连接到 DNS 或 DHCP 服务器并获取属于网络的所有计算机。目前我正在运行嵌套的 for 循环来 ping 每个可能的 IP 地址,但是它需要很长时间才能使用超过 10 个子网。我正试图从像菜鸟一样做事变成像老板一样做事。我想获取所有计算机名称和 IP 地址的列表,以及它们的 IP 是动态分配还是静态分配。我该怎么做?

4

1 回答 1

1

无法枚举网络上的所有主机,即使 ping 所有主机也不够,因为有些主机可能不会回复 ping。对于动态分配的,您可以查询 DHCP 服务器,但作为协议的 DHCP 不支持此功能,您必须编写一个守护进程并查询日志或分配文件。

如果您确实想通过 ping 来执行此操作,我建议您编写一个小程序,在后台运行并 ping 一切,将结果保存在内存中,然后让您的 php 脚本查询。这样,您的响应时间将接近即时。只要主机不频繁出现和消失(听起来不太可能),那么这应该没问题。

于 2012-09-21T12:27:55.240 回答