#!/usr/bin/python3 # # Script by Wouter Barendsen # Created on: 2023-12-02 # Last-modified: 2024-02-11 10:49:48 # # Module: natsort import re, os, time, datetime, sys, subprocess from operator import itemgetter from natsort import natsorted # variables ProgDir="/home/sjaak/scripts/macinvent/" Csv="mac-invent.csv" Epoch=int(time.time()) MacInvent=[] timeStamp=time.strftime('%Y-%m-%d_%H:%M',time.localtime(int(time.time()))) def help(): print("mac-invent-cli.py 1.0 Wouter Barendsen 2023 ") print(" Zoekt in mac-invent lijst naar een mac-adres ") print(" -h, --help help ") print(" [zoek] Zoek op mac adres of IP adres ") print(" [zoek] -w Zoek op heel ip of mac adres ") print(" ") exit(1) if len(sys.argv) <= 1: help() if sys.argv[1] == "-h" or sys.argv[1] == "--help": help() Zoek=sys.argv[1] Match=re.search(r'[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}',Zoek) if Match: IsIP=True else: IsIP=False if len(sys.argv) == 3: if sys.argv[2] == "-w": if IsIP: Zoek=";"+Zoek+";" else: Zoek=Zoek+";" def zoekCsv(dataFile): # lees de csv-file in een list of lists with open(ProgDir+dataFile) as f: for Line in f: if Zoek in Line: Line=Line.strip() Record=Line.split(sep=";") #print(Record) MacInvent.append(Record) zoekCsv(Csv) TotalRec=len(MacInvent) if IsIP: # sorteer op laatst gezien en IP MacInvent2=natsorted(MacInvent, key=itemgetter(2,4)) else: # sorteer op laatst gezien en macadres MacInvent2=sorted(MacInvent, key=itemgetter(0,4)) if MacInvent2 != []: print("Mac: Vl: IP: Eerst_gezien: Laatst_gezien:") for Line in MacInvent2: Fs=datetime.datetime.fromtimestamp(int(Line[3])) Ls=datetime.datetime.fromtimestamp(int(Line[4])) Fseen=str.format("%04d-%02d-%02d_%02d:%02d" % (Fs.year,Fs.month,Fs.day,Fs.hour,Fs.minute)) Lseen=str.format("%04d-%02d-%02d_%02d:%02d" % (Ls.year,Ls.month,Ls.day,Ls.hour,Ls.minute)) print(f"{Line[0]} {Line[1]:3} {Line[2]:15} {Fseen} {Lseen}") print(f"Results: {TotalRec}")