我想写一个脚本来解析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
我在这里得到一个CISCO设备的MAC地址从00:01:0A
开始。我想在openwrt/Unix中编写一个bash脚本,以便从/tmp/dhcp.leases
文件中获取与MAC LIST
相关的所有设备的相应IP地址,名称和MAC地址。如果找不到重置为MAC LIST
的设备,则该脚本应返回NULL
。我怎样才能解析这个地址列表使用脚本?有什么建议么 ?
更新:
我想将第一3位商MAC地址的DHCP与比较租赁文件。例如我的列表中包含的文件MAC.txt下列供应商的MAC地址(3位):
/usr/MAC.txt
---------
00:01:0A
00:00:1A
00:00:39
和dhcp.leases包含:
根@的OpenWrt:/#猫的/ 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
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租赁文件的MAC地址从MAC.txt文件与dhcp.leases文件。如果前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租约文件。 Awk正在处理这两个文件。 –