Commit bde7fab3 authored by gitmod's avatar gitmod

use netaddr to lookup mac address

parent 78148368
...@@ -34,17 +34,11 @@ import os ...@@ -34,17 +34,11 @@ import os
import os.path import os.path
import sys import sys
import ujson import ujson
from netaddr import *
if __name__ == '__main__': if __name__ == '__main__':
result = [] 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) # import dhcp_leases (index by ip address)
dhcp_leases = {} dhcp_leases = {}
dhcp_leases_filename = '/var/dhcpd/var/db/dhcpd.leases' dhcp_leases_filename = '/var/dhcpd/var/db/dhcpd.leases'
...@@ -70,9 +64,10 @@ if __name__ == '__main__': ...@@ -70,9 +64,10 @@ if __name__ == '__main__':
'manufacturer': '', 'manufacturer': '',
'hostname': '' 'hostname': ''
} }
manufacturer_mac = record['mac'].replace(':' ,'')[:6].upper() manufacturer_mac = EUI(record['mac'])
if manufacturer_mac in mac_table: oui = manufacturer_mac.oui
record['manufacturer'] = mac_table[manufacturer_mac] if oui.registration().org:
record['manufacturer'] = oui.registration().org
if record['ip'] in dhcp_leases: if record['ip'] in dhcp_leases:
record['hostname'] = dhcp_leases[record['ip']]['hostname'] record['hostname'] = dhcp_leases[record['ip']]['hostname']
result.append(record) result.append(record)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment