From bde7fab3f96933b3edced442046aa016add459b3 Mon Sep 17 00:00:00 2001 From: gitmod Date: Fri, 22 Jan 2016 19:33:26 +0100 Subject: [PATCH] use netaddr to lookup mac address --- src/opnsense/scripts/interfaces/list_arp.py | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/opnsense/scripts/interfaces/list_arp.py b/src/opnsense/scripts/interfaces/list_arp.py index 640b720ed..6e39b6475 100755 --- a/src/opnsense/scripts/interfaces/list_arp.py +++ b/src/opnsense/scripts/interfaces/list_arp.py @@ -34,17 +34,11 @@ import os import os.path import sys import ujson +from netaddr import * if __name__ == '__main__': result = [] - # import mac manufacturer mac address table (index by mac prefix) - mac_table = {} - if os.path.isfile('/usr/local/share/nmap/nmap-mac-prefixes'): - for mac in open('/usr/local/share/nmap/nmap-mac-prefixes').read().split('\n'): - if len(mac) > 8: - mac_table[mac[0:6]] = mac[7:] - # import dhcp_leases (index by ip address) dhcp_leases = {} dhcp_leases_filename = '/var/dhcpd/var/db/dhcpd.leases' @@ -70,9 +64,10 @@ if __name__ == '__main__': 'manufacturer': '', 'hostname': '' } - manufacturer_mac = record['mac'].replace(':' ,'')[:6].upper() - if manufacturer_mac in mac_table: - record['manufacturer'] = mac_table[manufacturer_mac] + manufacturer_mac = EUI(record['mac']) + oui = manufacturer_mac.oui + if oui.registration().org: + record['manufacturer'] = oui.registration().org if record['ip'] in dhcp_leases: record['hostname'] = dhcp_leases[record['ip']]['hostname'] result.append(record)