ネットワークに接続されているすべてのデバイスのMACアドレスを取得したい。 [スクリプト内 - すべてのWindows環境]pythonスクリプトでarp -a cmdコマンドを実行する方法はありますか?
私はそのためにpythonを使用することに決めました。私はnmapを使っています。
import nmap
nm = nmap.PortScanner()
nm.scan('127.0.0.1', '22-443')
#nm.scan(hosts='192.168.1.0/24', arguments='-n -sP -PE -PA21,23,80,3389')
nm.scan(hosts = '192.168.1.0/24', arguments = '-n -sP -PE -T5')
for host in nm.all_hosts():
mac = nm[host]['addresses']['mac']
print("mac " + mac)
[この方法の問題は、いくつかのデバイスが紛失することがあります。意味、 ルータに5台のデバイスが接続されていて、初めてスクリプトを実行すると、1つまたは2つのデバイスだけが返されます。私はそれがすべて5を返しますスクリプトを実行する次回は、三度目はそのように...だけであってもよい。]
私は、コマンドプロンプトを開いて行うかのように、
arp -a
これはすべて完璧に動作します時間。
私の質問は、私はpythonスクリプトでcmdから結果を解析する方法があるということですか?
私はos.popen(.. ?? ..)を見ましたが、 私はそれをどうすれば正確に理解できるのですか? これに適したライブラリはありますか? https://pypi.python.org/pypi/arprequest/0.3