Hab mal einbisserl rumgespielt, dabei ist das rausgekommen:
Delphi-Quellcode:
unit nmap_mac_prefixes;
interface
uses
Classes;
type
tNMap_Mac_List =
class(TObject)
fHex : TStringList;
fName : TStringList;
private
procedure Init000;
procedure Init001;
procedure Init002;
procedure Init003;
procedure Init004;
procedure Init005;
procedure Init006;
procedure Init007;
procedure Init008;
procedure Init009;
procedure Init010;
procedure Init011;
procedure Init012;
procedure Init013;
procedure Init014;
procedure Init015;
procedure Init016;
procedure Init017;
procedure Init018;
procedure Init019;
procedure Init020;
procedure Init021;
procedure Init022;
procedure Init023;
procedure Init024;
procedure Init025;
procedure Init026;
procedure Init027;
procedure Init028;
procedure Init029;
procedure Init030;
procedure Init031;
procedure Init032;
procedure Init033;
procedure Init034;
procedure Init035;
procedure Init036;
procedure Init037;
procedure Init038;
procedure Init039;
procedure Init040;
procedure Init041;
procedure Init042;
procedure Init043;
procedure Init044;
procedure Init045;
procedure Init046;
public
constructor Create;
destructor Destroy;
override;
function GetName(AHex :
String) :
String;
end;
implementation
constructor tNMap_Mac_List.Create;
begin
fHex := TStringList.Create;
fName := TStringList.Create;
Init000;
Init001;
Init002;
Init003;
Init004;
Init005;
Init006;
Init007;
Init008;
Init009;
Init010;
Init011;
Init012;
Init013;
Init014;
Init015;
Init016;
Init017;
Init018;
Init019;
Init020;
Init021;
Init022;
Init023;
Init024;
Init025;
Init026;
Init027;
Init028;
Init029;
Init030;
Init031;
Init032;
Init033;
Init034;
Init035;
Init036;
Init037;
Init038;
Init039;
Init040;
Init041;
Init042;
Init043;
Init044;
Init045;
Init046;
end;
destructor tNMap_Mac_List.Destroy;
begin
fName.Free;
fHex.Free;
end;
function tNMap_Mac_List.GetName(AHex :
String) :
String;
var
iIndex : Integer;
begin
iIndex := fHex.IndexOf(AHex);
if iIndex > -1
then Result := fName[iIndex]
else Result := '
<unbekannt>';
end;
procedure tNMap_Mac_List.Init000;
begin
fHex.Add('
000000'); fName.Add('
Xerox');
fHex.Add('
000001'); fName.Add('
Xerox');
fHex.Add('
000002'); fName.Add('
Xerox');
fHex.Add('
000003'); fName.Add('
Xerox');
fHex.Add('
000004'); fName.Add('
Xerox');
fHex.Add('
000005'); fName.Add('
Xerox');
fHex.Add('
000006'); fName.Add('
Xerox');
fHex.Add('
000007'); fName.Add('
Xerox');
fHex.Add('
000008'); fName.Add('
Xerox');
fHex.Add('
000009'); fName.Add('
Xerox');
fHex.Add('
00000A'); fName.Add('
Omron Tateisi');
... und viele weitere Zeilen dieser Art ...
... verteilt auf 46 Prozeduren, da ansonsten zuviele Konstanten
in einer Prozedur enthalten sind ...
... vollständig im Anhang ...
fHex.Add('
FCF8B7'); fName.Add('
TRONTEQ');
fHex.Add('
FCFAF7'); fName.Add('
Shanghai Baud Data');
fHex.Add('
FCFBFB'); fName.Add('
Cisco');
fHex.Add('
FCFC48'); fName.Add('
Apple');
fHex.Add('
FCFE77'); fName.Add('
Hitachi Reftechno');
fHex.Add('
FCFEC2'); fName.Add('
Invensys Controls UK');
fHex.Add('
FCFFAA'); fName.Add('
IEEE Registration Authority');
end;
end.
zu benutzen in z. B. der Form:
Delphi-Quellcode:
var
procedure Irgendwas(AMac : String);
x : tNMap_Mac_List;
begin
x := tNMap_Mac_List.Create;
ShowMessage(x.GetName(AMac));
x.Free;
end;
Ob das jetzt unbedingt eine sinnvolle Lösung ist, weiß ich nicht, aber es läßt sich kompilieren und ist damit alles in der EXE drin