Trouver adresse mac d'un poste distant à partir de son Ip

Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
17 décembre 2014
- - Dernière réponse : vieuxpere
Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
17 décembre 2014
- 14 nov. 2007 à 09:19
Bonjour,

Je souhaiterais savoir si on peut trouver l'adresse mac d'un poste distant à partir de son adresse IP, naturellement les deux postes sont sur le même réseau.

J'ai bien trouver dans la FAQ Delphi (voir ci dessous) un moyen de trouver l'adresse mac d'un poste, mais seulement de celui sur lequel je me trouve mais pas sur un poste distant.

Voici ce que j'ai utilisé, merci par avance de votre aide.

uses
  NB30;
 function 
GetAdapterInfo(Lana:
Char
):
 String 
;
var

  Adapter: TAdapterStatus;
  NCB: TNCB;
 begin 

  FillChar(NCB, SizeOf(NCB),
0
);
  NCB.ncb_command :=
Char
(NCBRESET);
  NCB.ncb_lana_num := Lana;
 
 if 
Netbios(@NCB) <>
Char
(NRC_GOODRET)
 then 

 
begin

    Result :=
'
mac
not
found
'
;
    Exit;
 
 end 
;

  FillChar(NCB, SizeOf(NCB),
0
);
  NCB.ncb_command :=
Char
(NCBASTAT);
  NCB.ncb_lana_num := Lana;
  NCB.ncb_callname :=
'
*
'
;

  FillChar(Adapter, SizeOf(Adapter),
0
);
  NCB.ncb_buffer := @Adapter;
  NCB.ncb_length := SizeOf(Adapter);
 
 if 
Netbios(@NCB) <>
Char
(NRC_GOODRET)
 then 

 
begin

    Result :=
'
mac
not
found
'
;
    Exit;
 
 end 
;
  Result : =
    IntToHex(
Byte
(Adapter.adapter_address[
0
]),
2
) +
'
-
'
+
    IntToHex(
Byte
(Adapter.adapter_address[
1
]),
2
) +
'
-
'
+
    IntToHex(
Byte
(Adapter.adapter_address[
2
]),
2
) +
'
-
'
+
    IntToHex(
Byte
(Adapter.adapter_address[
3
]),
2
) +
'
-
'
+
    IntToHex(
Byte
(Adapter.adapter_address[
4
]),
2
) +
'
-
'
+
    IntToHex(
Byte
(Adapter.adapter_address[
5
]),
2
);
 end 
;

function
GetMACAddress:
 string 
;
var

  AdapterList: TLanaEnum;
  NCB: TNCB;
 begin 

  FillChar(NCB, SizeOf(NCB),
0
);
  NCB.ncb_command :=
Char
(NCBENUM);
  NCB.ncb_buffer := @AdapterList;
  NCB.ncb_length := SizeOf(AdapterList);
  Netbios(@NCB);
 
 if 
Byte
(AdapterList.length) >
0
 then 

    Result : = GetAdapterInfo(AdapterList.lana[
0
])
 
 else 

    Result : =
'
mac
not
found
'
;
end
;
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
900
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009
3
1
Merci
salut,

je suppose qu'il existe un moyen plus propre, mais tu peu toujours le faire avec un ping et un arp -a.

bon code,

Loda
Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 197 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Loda
Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
17 décembre 2014
0
Merci
Merci de ta réponse, mais peux-tu me donner la commande exacte je suis pas un grand familiarisé du DOS (par exemple l'adresse mac qu'on veut trouver est celle du 192.0.0.1) ?
Commenter la réponse de vieuxpere