Da ich ungern meine eigentliche Mac-Adresse preisgebe, habe ich ein kleines Script geschrieben um Mac-Adressen zu generieren.
Dem Script kann ich über Argumente einen Hersteller (z.B Samsung oder Apple), das Trennzeichen (Komma, strich, Doppelpunkt) und eine Anzahl der zu generierenden Adressen übergeben. Wird nichts übergeben, wird eine zufällig generierte Adresse ausgegeben.
Das Script ist ebenfalls auf unserem Git-Server
# @Author: DanSch <DanSch>
# @Date: 27-08-2016
# @Email: dansch@blackit.de
# @Last modified by: DanSch
# @Last modified time: 27-08-2016
#!/usr/bin/env python
#random-mac.py
#ein kleines Python3 Script zum Erzeugen zufälliger Mac-Adressen
from random import SystemRandom
import argparse
import sys
random = SystemRandom()
separatorListe = {
'doppelpunkt':':',
'strich':'-',
'punkt':'.'
}
herstellerListe = { #Weitere Mac-Adressen unter https://standards.ieee.org/develop/regauth/oui/oui.csv
'apple':'FOCBA1',
'amazon':'F0D2F1',
'blackberry':'A4E4B8',
'motorola':'1430C6',
'samsung':'FO25B7',
}
def hersteller(hersteller):
if hersteller == "random":
#print("Wähle zufälligen Hersteller aus\n")
herstellermac = random.choice(list(herstellerListe.values()))
#print(herstellermac)
hersteller = list(herstellerListe.keys())[list(herstellerListe.values()).index(herstellermac)]
#print(hersteller)
return hersteller,herstellermac
elif hersteller in herstellerListe:
return hersteller, herstellerListe[hersteller]
else:
print("ERROR - Irgend etwas ist bei der Auswahl der Hersteller schief gelaufen")
sys.exit()
def geraeteKennung ():
geraet = random.randrange(0x999999)
geraet = "{0:0{1}X}".format(geraet, 6)
return geraet
def formatieren (rawmac, separator):
mac = ""
rawmac = [rawmac[i:i+2] for i in range(0, len(rawmac), 2)]
if separator not in separatorListe:
print("WARNUNG der uebergebene Seperator [" + separator + "] existiert nicht.\n Es wird nun der Standard (:) verwendet")
separator = ":"
else:
separator = separatorListe[separator]
for i in rawmac:
mac += i + separator
return mac[:-1]
def argumente():
parser = argparse.ArgumentParser(description='Erstelle eine Zufällige Mac-Adresse')
parser.add_argument('-s', '--separator',
choices=sorted(separatorListe.keys()), default="doppelpunkt",
help='Wie soll die Mac-Adresse getrennt werden? Default 00:00:00:00:00:00')
parser.add_argument('-v', '--hersteller',
choices=sorted(herstellerListe.keys()), default="random",
help='Welchen Hersteller wollen Sie? r=random')
parser.add_argument('-a', '--anzahl',
action="store", dest="anzahl", type=int, default=1,
help='Anzahl der zu erstellenden Mac-Adressen')
return parser.parse_args()
def main ():
i=0
args = argumente()
separatorArgument = args.separator
herstellerArgument = args.hersteller
anzahlArgument = args.anzahl
print("\n"+str(anzahlArgument)+" Mac-Adresse(n) wurde erstellt:")
while i < anzahlArgument:
herstellername, herstellermac = hersteller(herstellerArgument)
mac = herstellermac + geraeteKennung()
mac = formatieren(mac, separatorArgument)
print("\nHersteller: "+herstellername+"\nAdresse: "+mac)
i +=1
if __name__ == '__main__':
main()

Neueste Kommentare