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()

 

Wir nutzen Cookies, um Dir den bestmöglichen Service auf unserer Webseite zu bieten. mehr Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen