mirror of
https://github.com/lucaspalomodevelop/core.git
synced 2026-03-13 16:14:40 +00:00
Merge pull request #696 from gitdevmod/lookup-mac
use netaddr to lookup mac address in list_arp.py and list_ndp.py
This commit is contained in:
commit
a619d5cc44
1
Makefile
1
Makefile
@ -97,6 +97,7 @@ CORE_DEPENDS?= apinger \
|
||||
py27-requests \
|
||||
py27-sqlite3 \
|
||||
py27-ujson \
|
||||
py27-netaddr \
|
||||
python27 \
|
||||
radvd \
|
||||
rate \
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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:]
|
||||
|
||||
# parse ndp output
|
||||
with tempfile.NamedTemporaryFile() as output_stream:
|
||||
subprocess.call(['/usr/sbin/ndp', '-an'], stdout=output_stream, stderr=open(os.devnull, 'wb'))
|
||||
@ -58,9 +52,10 @@ if __name__ == '__main__':
|
||||
'intf': line_parts[2],
|
||||
'manufacturer': ''
|
||||
}
|
||||
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
|
||||
result.append(record)
|
||||
|
||||
# handle command line argument (type selection)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user