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

vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014 - 14 nov. 2007 à 09:01
vieuxpere Messages postés 195 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
;

2 réponses

cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
14 nov. 2007 à 09:11
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.
1
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014
14 nov. 2007 à 09:19
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) ?
0
Rejoignez-nous