vendor_update plugin

This commit is contained in:
Jokob-sk
2023-09-18 14:59:49 +10:00
parent 12b89f7e24
commit 1395dd9fb5
4 changed files with 19 additions and 7 deletions

View File

@@ -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

View File

@@ -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'

View File

@@ -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

View File

@@ -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