【问题标题】:Getting information from a DNS or DHCP Server从 DNS 或 DHCP 服务器获取信息
【发布时间】:2012-09-21 12:20:47
【问题描述】:
我正在用 PHP 制作一个网络监控程序。
我希望能够连接到 DNS 或 DHCP 服务器并获取属于网络的所有计算机。
目前,我正在运行嵌套的 for 循环来 ping 每个可能的 IP 地址,但是对于超过 10 个子网,它需要很长时间。
我正试图从像菜鸟一样做事变成像老板一样做事。
我想获取所有计算机名称和 IP 地址的列表,以及它们的 IP 是动态分配的还是静态分配的。
我该怎么做?
【问题讨论】:
标签:
php
networking
dns
lan
dhcp
【解决方案1】:
没有办法枚举网络上的所有主机,即使 ping 所有主机也不够,因为有些主机可能无法回复 ping。对于动态分配的,你可以查询 DHCP 服务器,但是 DHCP 作为协议不支持这个,你必须编写一个守护进程并查询日志或分配文件。
如果您确实想通过 ping 来执行此操作,我建议您编写一个小程序,在后台运行并 ping 一切,将结果保存在内存中,然后让您的 php 脚本查询。这样,您的响应时间将接近即时。只要主机不频繁出现和消失(听起来不太可能),那么这应该没问题。