Connaitre Adresse MAC
Résolu/Fermé
nabil-bago
Messages postés
255
Date d'inscription
mercredi 22 mai 2013
Statut
Membre
Dernière intervention
24 novembre 2021
-
14 févr. 2017 à 20:48
nabil-bago Messages postés 255 Date d'inscription mercredi 22 mai 2013 Statut Membre Dernière intervention 24 novembre 2021 - 15 févr. 2017 à 14:25
nabil-bago Messages postés 255 Date d'inscription mercredi 22 mai 2013 Statut Membre Dernière intervention 24 novembre 2021 - 15 févr. 2017 à 14:25
A voir également:
- Connaitre Adresse MAC
- Adresse mac - Guide
- Rechercher ou entrer l'adresse - Guide
- Darkino nouvelle adresse - Guide
- Darkino : le grand site pirate change d'adresse et d'interface - Accueil - Services en ligne
- Comment connaître son adresse ip - Guide
3 réponses
Nessdarth
Messages postés
36
Date d'inscription
vendredi 16 décembre 2016
Statut
Membre
Dernière intervention
28 février 2017
3
14 févr. 2017 à 20:56
14 févr. 2017 à 20:56
Bonjour,
Tu devrais donner ce que tu as trouvé, il y a peut-être une petite erreur.
Tu devrais donner ce que tu as trouvé, il y a peut-être une petite erreur.
nabil-bago
Messages postés
255
Date d'inscription
mercredi 22 mai 2013
Statut
Membre
Dernière intervention
24 novembre 2021
13
Modifié par nabil-bago le 14/02/2017 à 21:18
Modifié par nabil-bago le 14/02/2017 à 21:18
function GetMACAdress: string; var NCB: PNCB; Adapter: PAdapterStatus; URetCode: PChar; RetCode: char; I: integer; Lenum: PlanaEnum; _SystemID: string; TMPSTR: string; begin Result := ''; _SystemID := ''; Getmem(NCB, SizeOf(TNCB)); Fillchar(NCB^, SizeOf(TNCB), 0); Getmem(Lenum, SizeOf(TLanaEnum)); Fillchar(Lenum^, SizeOf(TLanaEnum), 0); Getmem(Adapter, SizeOf(TAdapterStatus)); Fillchar(Adapter^, SizeOf(TAdapterStatus), 0); Lenum.Length := chr(0); NCB.ncb_command := chr(NCBENUM); NCB.ncb_buffer := Pointer(Lenum); NCB.ncb_length := SizeOf(Lenum); RetCode := Netbios(NCB); i := 0; repeat Fillchar(NCB^, SizeOf(TNCB), 0); Ncb.ncb_command := chr(NCBRESET); Ncb.ncb_lana_num := lenum.lana[I]; RetCode := Netbios(Ncb); Fillchar(NCB^, SizeOf(TNCB), 0); Ncb.ncb_command := chr(NCBASTAT); Ncb.ncb_lana_num := lenum.lana[I]; // Must be 16 Ncb.ncb_callname := '* '; Ncb.ncb_buffer := Pointer(Adapter); Ncb.ncb_length := SizeOf(TAdapterStatus); RetCode := Netbios(Ncb); //---- calc _systemId from mac-address[2-5] XOR mac-address[1]... if (RetCode = chr(0)) or (RetCode = chr(6)) then begin _SystemId := IntToHex(Ord(Adapter.adapter_address[0]), 2) + '-' + IntToHex(Ord(Adapter.adapter_address[1]), 2) + '-' + IntToHex(Ord(Adapter.adapter_address[2]), 2) + '-' + IntToHex(Ord(Adapter.adapter_address[3]), 2) + '-' + IntToHex(Ord(Adapter.adapter_address[4]), 2) + '-' + IntToHex(Ord(Adapter.adapter_address[5]), 2); end; Inc(i); until (I >= Ord(Lenum.Length)) or (_SystemID <> '00-00-00-00-00-00'); FreeMem(NCB); FreeMem(Adapter); FreeMem(Lenum); GetMacAdress := _SystemID; end;
les erreurs :
au niveau des ligne 28,35 et45
[dcc32 Erreur] Unit6.pas(53): E2010 Types incompatibles : 'Char' et 'AnsiChar'
Nessdarth
Messages postés
36
Date d'inscription
vendredi 16 décembre 2016
Statut
Membre
Dernière intervention
28 février 2017
3
15 févr. 2017 à 10:01
15 févr. 2017 à 10:01
Bonjour,
Tu changes juste cela : RetCode: AnsiChar;
J'ai testé et cela fonctionne
Tu changes juste cela : RetCode: AnsiChar;
J'ai testé et cela fonctionne
nabil-bago
Messages postés
255
Date d'inscription
mercredi 22 mai 2013
Statut
Membre
Dernière intervention
24 novembre 2021
13
>
Nessdarth
Messages postés
36
Date d'inscription
vendredi 16 décembre 2016
Statut
Membre
Dernière intervention
28 février 2017
15 févr. 2017 à 14:25
15 févr. 2017 à 14:25
Re-Bonjour,
ça fonctionne,
Merci beaucoup NessDarth pour votre aide
ça fonctionne,
Merci beaucoup NessDarth pour votre aide
nabil-bago
Messages postés
255
Date d'inscription
mercredi 22 mai 2013
Statut
Membre
Dernière intervention
24 novembre 2021
13
14 févr. 2017 à 21:24
14 févr. 2017 à 21:24
y en a aussi celle là
erreur au niveau de la derniere ligne ( label1.Caption := GetMacAddresses; )
[dcc32 Erreur] Unit6.pas(138): E2035 Pas assez de paramètres originaux
type TAdapterStatus = record adapter_address: array [0..5] of char; filler: array [1..4 * SizeOf(char) + 19 * SizeOf(Word) + 3 * SizeOf(DWORD)] of Byte; end; THostInfo = record username: PWideChar; logon_domain: PWideChar; oth_domains: PWideChar; logon_server: PWideChar; end;{record} function IsNetConnect: Boolean; begin if GetSystemMetrics(SM_NETWORK) and $01 = $01 then Result := True else Result := False; end;{function} function AdapterToString(Adapter: TAdapterStatus): string; begin with Adapter do Result := Format('%2.2x-%2.2x-%2.2x-%2.2x-%2.2x-%2.2x', [Integer(adapter_address[0]), Integer(adapter_address[1]), Integer(adapter_address[2]), Integer(adapter_address[3]), Integer(adapter_address[4]), Integer(adapter_address[5])]); end;{function} function GetMacAddresses(const Machine: string; const Addresses: TStrings): Integer; const NCBNAMSZ = 16; // absolute length of a net name MAX_LANA = 254; // lana's in range 0 to MAX_LANA inclusive NRC_GOODRET = $00; // good return NCBASTAT = $33; // NCB ADAPTER STATUS NCBRESET = $32; // NCB RESET NCBENUM = $37; // NCB ENUMERATE LANA NUMBERS type PNCB = ^TNCB; TNCBPostProc = procedure(P: PNCB); stdcall; TNCB = record ncb_command: Byte; ncb_retcode: Byte; ncb_lsn: Byte; ncb_num: Byte; ncb_buffer: PChar; ncb_length: Word; ncb_callname: array [0..NCBNAMSZ - 1] of char; ncb_name: array [0..NCBNAMSZ - 1] of char; ncb_rto: Byte; ncb_sto: Byte; ncb_post: TNCBPostProc; ncb_lana_num: Byte; ncb_cmd_cplt: Byte; ncb_reserve: array [0..9] of char; ncb_event: THandle; end; PLanaEnum = ^TLanaEnum; TLanaEnum = record Length: Byte; lana: array [0..MAX_LANA] of Byte; end; ASTAT = record adapt: TAdapterStatus; namebuf: array [0..29] of TNameBuffer; end; var NCB: TNCB; Enum: TLanaEnum; I: integer; Adapter: ASTAT; MachineName: string; begin Result := -1; Addresses.Clear; MachineName := UpperCase(Machine); if MachineName = '' then MachineName := '*'; FillChar(NCB, SizeOf(NCB), #0); NCB.ncb_command := NCBENUM; NCB.ncb_buffer := Pointer(@Enum); NCB.ncb_length := SizeOf(Enum); if Word(NetBios(@NCB)) = NRC_GOODRET then begin Result := Enum.Length; for I := 0 to Ord(Enum.Length) - 1 do begin FillChar(NCB, SizeOf(TNCB), #0); NCB.ncb_command := NCBRESET; NCB.ncb_lana_num := Enum.lana[I]; if Word(NetBios(@NCB)) = NRC_GOODRET then begin FillChar(NCB, SizeOf(TNCB), #0); NCB.ncb_command := NCBASTAT; NCB.ncb_lana_num := Enum.lana[i]; StrLCopy(NCB.ncb_callname, PChar(MachineName), NCBNAMSZ); StrPCopy(@NCB.ncb_callname[Length(MachineName)], StringOfChar(' ', NCBNAMSZ - Length(MachineName))); NCB.ncb_buffer := PChar(@Adapter); NCB.ncb_length := SizeOf(Adapter); if Word(NetBios(@NCB)) = NRC_GOODRET then Addresses.Add(AdapterToString(Adapter.adapt)); end; end; end; end; procedure TForm6.Button1Click(Sender: TObject); begin label1.Caption := GetMacAddresses; end;
erreur au niveau de la derniere ligne ( label1.Caption := GetMacAddresses; )
[dcc32 Erreur] Unit6.pas(138): E2035 Pas assez de paramètres originaux