diff --git a/front/plugins/vendor_update/README.md b/front/plugins/vendor_update/README.md index 03fa70f4..80ef4d8d 100755 --- a/front/plugins/vendor_update/README.md +++ b/front/plugins/vendor_update/README.md @@ -1,6 +1,6 @@ ## Overview -Plugin to run regular database cleanup tasks. It is strongly recommended to have an hourly or at least daily schedule running. +A plugin to retrieve a MAC and vendor database to identify vendors for devices. ### Usage diff --git a/pialert/const.py b/pialert/const.py index 98caee86..d66c53c9 100755 --- a/pialert/const.py +++ b/pialert/const.py @@ -15,7 +15,8 @@ logPath = pialertPath + '/front/log' apiPath = pialertPath + '/front/api/' fullConfPath = pialertPath + confPath fullDbPath = pialertPath + dbPath -vendorsPath = '/usr/share/arp-scan/ieee-oui.txt' +vendorsPath6 = '/usr/share/arp-scan/ieee-oui.txt' +vendorsPath9 = '/usr/share/arp-scan/ieee-iab.txt' diff --git a/pialert/device.py b/pialert/device.py index 41959bb7..524dccdd 100755 --- a/pialert/device.py +++ b/pialert/device.py @@ -6,7 +6,7 @@ import re from helper import timeNowTZ, get_setting, get_setting_value,resolve_device_name_dig, resolve_device_name_pholus from scanners.internet import check_IP_format, get_internet_IP from logger import mylog, print_log -from const import vendorsPath +from const import vendorsPath6, vendorsPath9 #------------------------------------------------------------------------------- @@ -328,14 +328,22 @@ def query_MAC_vendor (pMAC): return -2 # return -2 if ignored MAC # Search vendor in HW Vendors DB - mac_start_string = mac[0:6] + mac_start_string6 = mac[0:6] + mac_start_string9 = mac[0:9] try: - with open(vendorsPath, 'r') as f: + with open(vendorsPath6, 'r') as f: for line in f: - if line.startswith(mac_start_string): + if line.startswith(mac_start_string6): vendor = line.split(' ', 1)[1].strip() - mylog('debug', [f"[Vendor Check] Found '{vendor}' for '{pMAC}'"]) + mylog('debug', [f"[Vendor Check] Found '{vendor}' for '{pMAC}' in {vendorsPath6}"]) + return vendor + + with open(vendorsPath9, 'r') as f: + for line in f: + if line.startswith(mac_start_string9): + vendor = line.split(' ', 1)[1].strip() + mylog('debug', [f"[Vendor Check] Found '{vendor}' for '{pMAC}' in {vendorsPath9}"]) return vendor return -1 # MAC address not found in the database diff --git a/pialert/initialise.py b/pialert/initialise.py index 257dc4bc..b33ef74a 100755 --- a/pialert/initialise.py +++ b/pialert/initialise.py @@ -75,6 +75,9 @@ def importConfigs (db): # Header updateState("Import config", showSpinner = True) + + # remove all plugin langauge strings + sql.execute("DELETE FROM Plugins_Language_Strings;") mylog('debug', ['[Import Config] importing config file']) conf.mySettings = [] # reset settings