PHPでネットワーク監視プログラムを作っています。DNS または DHCP サーバーに接続して、ネットワークに属するすべてのコンピューターを取得できるようにしたいと考えています。現在、ネストされたforループを実行して、可能なすべてのIPアドレスにpingを実行していますが、10を超えるサブネットでは時間がかかります. 私は、初心者のように行うことから、上司のように行うことに変更しようとしています。すべてのコンピューター名と IP アドレスのリストと、それらの IP が動的または静的に割り当てられているかどうかのリストを取得したいと考えています。どうすればいいですか?
質問する
1078 次
1 に答える
1
ネットワーク上のすべてのホストを列挙する方法はありません。一部のホストは ping に応答しない可能性があるため、すべてのホストに ping を送信しても十分ではありません。動的に割り当てられたものについては、DHCP サーバーにクエリを実行できますが、プロトコルとしての DHCP はこれをサポートしていないため、デーモン プロセスを記述して、ログまたは割り当てファイルをクエリする必要があります。
ping で実行したい場合は、バックグラウンドで実行してすべてに ping を実行し、結果をメモリに保持してから、php スクリプトにクエリを実行させる小さなプログラムを作成することをお勧めします。このようにして、応答時間がほぼ即時になります。ホストが頻繁に出現したり消えたりしない限り (ありそうにないように思えます)、これで問題ありません。
于 2012-09-21T12:27:55.240 に答える