
ホーム ネットワークに接続しているマシンを知りたいです。各マシンのエントリ、最後に見たときのタイムスタンプ、および何回見たかの集計を含む MySQL データベースを用意しようと思いました。これは簡単です。私の質問は、MAC をスキャンするにはどうしたらよいかということです。30 分ごとに実行する次のような方法を検討しました。
#! /usr/bin/python
import nmap
nm = nmap.PortScanner()
nm.scan(hosts='10.10.10.0/24', arguments='-n -sP -PE)
hosts_list = [(x, nm[x]['status']['state']) for x in nm.all_hosts()]
for host, status, mac in hosts_list:
save(host,status,mac)
...ただし、MAC を取得するには、これを として実行する必要がありますroot
。
- これを行うより良い方法はありますか? (ルーターから DHCP レコードを取得できるかどうかも検討しましたが、固定 IP デバイスは見つかりません)
- 別のツールを使用できますか?
- cron でスクリプトを root として実行する際に実行できるセキュリティ対策はありますか?
答え1
Windows コマンド ラインから: arp -a を実行すると、現在ネットワーク上にあるすべてのシステムの IP アドレスと MAC アドレスが表示されます。