Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Name aus IP ermitteln

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Blues
Gast





BeitragVerfasst am: 25. Jul 2003 16:03   Titel: Name aus IP ermitteln

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
Gast





BeitragVerfasst am: 28. Jul 2003 11:02   Titel: Re: Name aus IP ermitteln

Die Funktion hat Error_Codes, wie wärs damit?

http://www.unet.univie.ac.at/aix/libs/commtrf2/gethostbyaddr.htm

Cheers

Michael
 

Blues
Gast





BeitragVerfasst am: 29. Jul 2003 22:21   Titel: Re: Name aus IP ermitteln

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
Gast





BeitragVerfasst am: 03. Aug 2003 16:46   Titel: Re: Name aus IP ermitteln

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:


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


Halte durch!
 

Blues
Gast





BeitragVerfasst am: 04. Aug 2003 11:38   Titel: Re: Name aus IP ermitteln

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ß

Danke für die Denkanstöße!
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy