下記、arp- a を行い、MACアドレスを取得する部分のコードですが、
arp -a の結果を一度、仮のテキストファイルに保存し、
再度、仮のテキストファイルを開いてから、IPとMACアドレス
だけ取得する処理となっており、コードとして効率的とは言えません。
出力結果を仮のテキストに保存しないで、欲しい情報だけを
取得するようなコードにするには、どの様にすればよろしいでしょうか?
python
1arp_res = subprocess.run(['arp', '-a', target_ip], stdout=subprocess.PIPE) 2arp_result = arp_res.stdout.decode('cp932') 3 4 if re.match('ARP', arp_result) is None: 5 6 #arp -a結果をarp.txtへ一時保存 7 with open('arp.txt', 'w', encoding='shift-jis') as f: 8 writer = f.writelines(arp_result) 9 10 #arp -aの結果が保存されたファイルを開きなおし、ipとmacアドレスを抽出 11 with open('arp.txt', 'r', encoding='shift-jis') as f: 12 elems = f.readlines() 13 14 elem = elems[6].split(' ') 15 16 ip_address = elem[2] 17 mac_address = elem[13]
arp -a出力結果
インターフェイス: 192.168.3.2 --- 0x14 インターネット アドレス 物理アドレス 種類 192.168.3.1 aa-bb-cc-dd-ee-ff 動的
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。