Recuperer le Hostname a partir de l IP sous Delphi2009 [Résolu]

Signaler
Messages postés
48
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
31 août 2011
-
cs_mimimou
Messages postés
48
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
31 août 2011
-
Bonjour a tous,


Depuis la version 2009 de delphi, la fonction qui permet de recuperer le nom d host a partir d une IP ne fonctionne plus :

function IPAddrToHostName(IPAddr: string): string; stdcall;
var
  SockAddrIn: TSockAddrIn;
  HostEnt: PHostEnt;
  WSAData: TWSAData;
begin
  WSAStartup($101, WSAData);
  SockAddrIn.sin_addr.s_addr := inet_addr(PChar(IPAddr));
  HostEnt := gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
  if HostEnt <> nil then
    Result := StrPas(Hostent^.h_name)
  else
    Result := '';
end;

erreur : Incompatible types : 'Char' and 'AnsiChar', 'Name' and 'PAnsiChar', etc....

Quelqu un l aurait-il deja adapte pour delphi 2009 ?
Merci

2 réponses

Messages postés
3809
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
25 janvier 2020
35
Salut,

function IPAddrToHostName(IPAddr: string): string; stdcall;
var
  SockAddrIn: TSockAddrIn;
  HostEnt: PHostEnt;
  WSAData: TWSAData;
begin
  WSAStartup($101, WSAData);
  SockAddrIn.sin_addr.s_addr := inet_addr(PAnsiChar(AnsiString(IPAddr)));
  HostEnt := gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
  if HostEnt <> nil then
    Result := string(Hostent^.h_name)
  else
    Result := '';
end;

 
@+
Cirec

<hr siz="" />
Messages postés
48
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
31 août 2011

Merci beaucoup, ca marche impec