Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#5

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

  Alt 23. Mär 2017, 22:56
Mann, Du bist aber anspruchsvoll

Ok: Luckies Caseansatz könnte dann so aussehen:
Delphi-Quellcode:
unit nmap_mac_prefixes;

interface

  function GetMac(AMac : Integer) : String;

implementation

function GetMac(AMac : Integer) : String;
begin
  case AMac of
    $30F33A: Result := '+plugg srl';
    $700258: Result := '01DB-Metravib';
    $C49313: Result := '100fio networks';
    $080024: Result := '10NET/DCA';
    $000B10: Result := '11wave Technonlogy';
    $A85EE4: Result := '12Sided';
    $005029: Result := '1394 Printer Working Group';
    $00A02D: Result := '1394 Trade Association';
    $001974: Result := '16063';
    $003070: Result := '1Net';
    $54369B: Result := '1Verge Internet';
    $443719: Result := '2 Save Energy';
    $0011B2: Result := '2001';
    $0025C3: Result := '21168';
    $EC9681: Result := '2276427 Ontario';
    $001387: Result := '27M';
    $000761: Result := '29530';
    $28F358: Result := '2C - Trifonov';
    $3C3F51: Result := '2CRSI';
    $0016A9: Result := '2EI';
    $B8B7D7: Result := '2GIG';
    $001B8A: Result := '2M';
    $001929: Result := '2M2B Montadora de Maquinas Bahia Brasil';
    $7C1EB3: Result := '2N TELEKOMUNIKACE a.s';
    $F82C18, $28162E, $383BC8, $94C150, $001288, $002456, $60FE20, $982CBE,
    $0022A4, $002650, $34EF44, $00183F, $002351, $00D09E, $001FB3, $DC7FA4,
    $749DDC, $00253C, $0019E4, $001EC7, $F81897, $640F28, $C0830A, $000D72,
    $3CEA4F, $00217C, $60C397, $001D5A, $B8E625, $B0E754, $14EDBB, $001AC4,
    $001B5B, $001495: Result := '2Wire';

... und viele weitere Zeilen ...
... vollständig im Anhang ...

    $000689: Result := 'yLez';
    $8CC7D0: Result := 'zhejiang ebang';
    $30F31D, $28FF3E, $78312B, $DC028E, $4C09B4, $601466, $84742A, $E47723,
    $30D386, $2C26C5, $601888, $B805AB, $8C7967, $A8A668, $744AA4, $901D27,
    $F4B8A7, $C864C7, $4C16F1, $688AF0, $709F2D, $789682, $4CAC0A, $D0154A,
    $4CCBF5, $48282F, $FCC897, $B4B362, $CC1AFA, $540955, $300C23, $48A74E,
    $B49842, $346987, $004A77, $344DEA, $F41F88, $343759, $344B50, $F084C9,
    $001E73, $88D274, $B075D5, $986CF5, $C87B5B, $F46DE2, $702E22, $AC6462,
    $981333, $CC7B35, $2C957F, $C4A366, $681AB2, $34DE34, $D855A3, $A0EC80,
    $208986, $D437D7, $64136C, $FC2D5E, $0C1262, $083FBC, $94A7B7, $EC1D7F,
    $002293, $D87495, $38D82F, $749781, $08181A, $D476EA, $1844E6, $9CA9E4,
    $146080, $F8DFA8, $9CD24B, $18686A, $002512, $D4C1C8, $E07C13, $F8A34F,
    $A091C8, $10D0AB, $143EBF, $3CDA2A, $0015EB, $74A78E, $98F537, $98F428,
    $8CE081, $78C1A7, $5422F8, $54BE53, $6C8B2F, $8CE117, $0026ED, $44F436,
    $6CA75F, $EC237B, $F4E4AD, $34E0CF, $0019C6, $EC8A4C, $384608, $6073BC,
    $D071C4, $90C7D8, $90D8F3, $E0C3F3, $78E8B6, $74B57E, $D0608C, $D05BA8,
    $D058A8, $24C44A, $689FF0, $A47E39, $049573: Result := 'zte';
  else
    Result := '<unbekannt>';
  end;
end;

end.
Das ist allerdings nicht kompilierbar, wegen doppelter Case-Label. So ist z. B. 080030 nicht eindeutig, sondern wird von drei Firmen genutzt: Cern, Network und Royal Melbourne Inst Of. Da wirst Du Dir dann wohl noch eine andere Lösung suchen müssen

Allerdings halten sich die Dubletten im Rahmen, folgende hab' ich finden können:
Code:
0001C8 Conrad und Thomas Conrad
080030 Cern, Network und Royal Melbourne Inst Of
Dafür wäre der Aufruf aber deutlich einfacher:ShowMessage(GetMac($000019));

Geändert von nahpets (21. Nov 2017 um 16:41 Uhr)
  Mit Zitat antworten Zitat