Socket TCP/IP (local) : comment récupérer adrr MAC ?
Bonjour,
J'ai une application Client-Serveur. Je n'ai que les sources Delphi de l'application Serveur.
L'application serveur (sous Windows) communique avec des applications client (PDA sous Windows CE) SUR UN RESEAU LOCAL via les Sockets Windows en mode TCP/IP.
J'ai besoin d'identifier le matériel du client, idéalement ce serait de récupérer son Adresse MAC qui est unique.
Comment puis-je faire cela ?
J'obtiens son adresse IP comme ceci :
Code:
1 2 3 4 5 6 7 8
| var
SockAddrIn : TSockAddrIn;
Size : Integer;
AdresseIP : string;
begin
getpeername(Ident, SockAddrIn, Size);
ShowMessage( inet_ntoa(SockAddrIn.sin_addr) );
end; |
J'ai essayé d'obtenir le nom de la machine mais ça ne fonctionne pas (pointeur HostEnt = nil) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| var
SockAddrIn : TSockAddrIn;
Size : Integer;
AdresseIP : string;
HostEnt: PHostEnt;
begin
getpeername(Ident, SockAddrIn, Size);
HostEnt := gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
if HostEnt <> nil then
Showmessage( StrPas(Hostent^.h_name) )
else
Showmessage('');
end; |
Savez-vous comment je peux faire ? Merci beaucoup !