OpenwrtのDHCPリースファイルから、対応するアドレスでデバイスの一部を解析するスクリプトを作成しようとしています。私はベンダーのMACアドレスのリストを維持しています。デバイスをルータに接続すると、DHCPリースファイルからベンダのMACを使ってIPアドレス、MACアドレス、およびデバイスの名前を取得したい。例えばOpenwrtのDHCPリースファイルから特定のMACアドレスを解析するには?
、私はベンダーMACのリストを維持している場合
MAC LIST = {"00:01:0A","00:00:1A","00:00:39"}
where ,
00:01:0A - CISCO
00:00:1A - AMD
00:00:39 - Toshiba TOSHIBA CORPORATION
とOpenWrtのDHCPリースファイルの例のために異なるデバイスを含んように対処する:ここで私は取得しています
[email protected]:/# cat /tmp/dhcp.leases
1568953482 70:B3:D5:14:D0:31 192.168.3.51 device1 01:70:B3:D5:14:D0:31
2867821468 38:B8:EB:10:00:22 192.168.5.93 device2 01:38:B8:EB:10:00:22
8984532872 00:01:0A:33:11:33 192.168.5.44 CISCOee 01:00:01:0A:33:11:33
Where, 2nd column - MAC address , 3rd column - IP address and 4th column- Name
MACアドレスが00:01:0A
から始まるCISCOデバイス。 openwrt/Unixに、ファイルからMAC LIST
に関するすべてのデバイスの対応するIPアドレス、名前、およびMACアドレスを取得するためのbashスクリプトを作成します。 MAC LIST
にリセットされたデバイスが見つからない場合、スクリプトはNULL
を返します。スクリプトを使用してこのアドレス一覧を解析するにはどうすればよいですか?助言がありますか ?
更新:
私はDHCPとベンダーMACアドレスの最初の3桁を比較するには、ファイルをリースしています。
/usr/MAC.txt
---------
00:01:0A
00:00:1A
00:00:39
とdhcp.leasesが含まれています:OpenWrtの@
ルートを:/ DHCP /#猫の/ tmpたとえば私のリストは、ベンダーMACがMAC.txtファイル内(3桁)に対処以下が含まれています.leases
1568953482 70:B3:D5:14:D0:31 192.168.3.51 device1 01:70:B3:D5:14:D0:31
2867821468 38:B8:EB:10:00:22 192.168.5.93 device2 01:38:B8:EB:10:00:22
8984532873 00:01:0A:33:11:33 192.168.5.44 CISCOee1 01:00:01:0A:33:11:33
8984532874 00:01:0A:34:12:34 192.168.5.44 CISCOee2 01:00:01:0A:34:12:34
ここで、dhcp.leasesファイルとdhcpのリースファイルのMACアドレスとMAC.txtファイルを比較したいと思います。 最初の3桁がの場合は、IPアドレス、MACアドレス、一致するデバイスの名前を返します。
Sample output :
00:01:0A:33:11:33 192.168.5.44 CISCOee1
00:01:0A:34:12:34 192.168.5.44 CISCOee2
何も見つからない場合、出力としてNULLを送信します。
質問を明確に更新しました。これで完了したことを確認してください。貴重な提案をありがとう。 –
あなたのスクリプトの 'MAC dhcp.leases'の最後の行は何ですか?それはファイルパスですか?私は 'MAC/tmp/dhcp.leases'に変更することができます –
MACはあなたが維持しているファイルです(MAC LISTテキストが入っています)。dhcp.leasesはdhcp leasesファイルです。 awkは両方のファイルを処理しています。 –