Name aus IP ermitteln

Post Reply
Message
Author
Blues

Name aus IP ermitteln

#1 Post by Blues »

Ich habe eine IP und will aus dieser den hostnamen ermitteln. Bisher sah das bei mir so aus und funktionierte nicht:

struct hostent *he;

he=gethostbyaddr(inet_ntoa(*IP),100,AF_INET);
if (he) ...

he war hinterher immer NULL, es konnte (trotz vorhandener Verbindung zu INet und DNS) kein Hostname für struct in_addr *IP ermittelt werden.

Hat jemand eine Idee, woran das liegen könnte?

Michael

Re: Name aus IP ermitteln

#2 Post by Michael »

Die Funktion hat Error_Codes, wie wärs damit?

http://www.unet.univie.ac.at/aix/libs/c ... byaddr.htm

Cheers

Michael

Blues

Re: Name aus IP ermitteln

#3 Post by Blues »

Die liefert mir HOST_NOT_FOUND - selbst beim localhost 127.0.0.1

Habe ich was übersehen? *IP ist bei mir übrigens ein Parameter vom Typ struct in_addr *IP und wird beim Funktionsafuruf als &ClientAddr.sin_addr übergeben (ClientAddr ist dabei struct sockaddr_in).

A. ToNumber

Re: Name aus IP ermitteln

#4 Post by A. ToNumber »

Was machst Du hier mit `inet_ntoa()'?
Ich meine, wenn `gethostbyaddr()' binäre Adress-Daten möchte ist `IP = inet_addr( "127.0.0.1" )' (besser: `fehler = inet_aton( "127.0.0.1", inp )' ) (bei Bedarf) angebrachter?

if( ( phe = gethostbyaddr( inp, 4, AF_INET ) ) ) ...

Also irgendwie fütterst Du die Funktion falsch, da sie an dieser Stelle auch nur einen char* möchte, ist wohl auch nicht viel mit Compiler-Fehler/Warnungen.

Nochmal: <pre>

char pIP[] = { 0x7f, 0x00, 0x00, 0x01 }; //localhost
struct hostent *phe;

if( ( phe = gethostbyaddr( pIP, 4, AF_INET ) ) ) /* 4 Byte */

phe zeigt dann etwa auf:
*h_name: localhost.localdomain
**h_aliases
Alias: localhost
h_addrtype: 2
h_length: 4
</pre>

Halte durch!

Blues

Re: Name aus IP ermitteln

#5 Post by Blues »

Juhu, jetzt funktioniert es! Dieses inet_ntoa() ist nur bei den Versuchen, es zum Laufen zu bekommen, hineingeraten. Schuld an meinen Problemen war allerdings der falsche Parameter len: mit 100 ist der irgend wie viel zu groß <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

Danke für die Denkanstöße!

Post Reply