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

cs_mimimou 48 Messages postés vendredi 17 janvier 2003Date d'inscription 31 août 2011 Dernière intervention - 23 févr. 2009 à 09:09 - Dernière réponse : cs_mimimou 48 Messages postés vendredi 17 janvier 2003Date d'inscription 31 août 2011 Dernière intervention
- 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
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 23 févr. 2009 à 13:47
3
Merci
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="" />

Merci Cirec 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de Cirec
cs_mimimou 48 Messages postés vendredi 17 janvier 2003Date d'inscription 31 août 2011 Dernière intervention - 24 févr. 2009 à 06:35
0
Merci
Merci beaucoup, ca marche impec


 
Commenter la réponse de cs_mimimou

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.