Einzelnen Beitrag anzeigen

CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#1

MAC-Hersteller-Zuordnung bzw. Wie mit einem sehr großen Datensatz umgehen?

  Alt 23. Mär 2017, 20:24
Delphi-Version: XE
Ich möchte in einem Programm gerne den zu einer MAC-Adresse zugehörigen Hersteller anzeigen. Dieser lässt sich ja an den ersten drei Bytes erkennen, da diese offiziell vergeben werden. Nun steht da sonst nicht so viel Logik dahinter und die Zuordnung wird in langen Listen öffentlich dokumentiert. Diese lassen sich in unterschiedlichen Formen beispielsweise hier abrufen:
http://linuxnet.ca/ieee/oui/
Ich habe die Datei mit den Kurzformen hier zusätzlich angehängt, da der Download von deren Server immens langsam ist.
So eine Auflistung hat über 23.000 Einträge.

Mein Problem ist nun, dass ich überhaupt keine Idee habe, wie ich damit in Delphi am besten umgehen sollte. Folgende Kriterien hätte ich damit gerne erfüllt:
  1. Die Liste sollte direkt in der Exe enthalten sein (und nicht als externe Datei eingelesen werden).
  2. Die Liste sollte möglichst kompakt gehalten werden, um das Programm nicht mehr aufzublähen als notwendig. Bspw. wäre es sinnvoll redundante Herstellernamen zusammenzufassen (also HP: 3CD92B, 9C8E99, B499BA, ...)
  3. Die Abfrage sollte so performant wie möglich ablaufen, da mehrere MAC-Adressen hintereinander abgefragt werden könnten.
Wie würdet Ihr das denn machen? Alles mit einem Parser in eine Array-Form bringen und in eine Unit stecken?
Angehängte Dateien
Dateityp: zip nmap-mac-prefixes.zip (205,0 KB, 12x aufgerufen)
Nur Delphi schafft es, einem ein Lächeln zu schenken, wenn man sich beim Schreiben von := vertippt und stattdessen ein :) erscheint.
  Mit Zitat antworten Zitat