ネットワーク上のすべてのマシンの MAC をログに記録する

ネットワーク上のすべてのマシンの MAC をログに記録する

ホーム ネットワークに接続しているマシンを知りたいです。各マシンのエントリ、最後に見たときのタイムスタンプ、および何回見たかの集計を含む 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 アドレスが表示されます。

答え2

関連情報