Recuperer le Hostname a partir de l IP sous Delphi2009

Résolu
cs_mimimou Messages postés 48 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 31 août 2011 - 23 févr. 2009 à 09:09
cs_mimimou Messages postés 48 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 31 août 2011 - 24 févr. 2009 à 06:35
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

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
23 févr. 2009 à 13:47
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="" />
3
cs_mimimou Messages postés 48 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 31 août 2011
24 févr. 2009 à 06:35
Merci beaucoup, ca marche impec


 
0
Rejoignez-nous