host in ip umwandeln
-
ich will den host "de66.die-staemme.de" in die ip umwandeln.
gethostbyname() und inet_addr() versagen irgendwie und liefern keine ip.
weis einer wiso? und welche funktion geht?
von inet_addr() der code:
const char* ipserver = server.c_str(); ip = inet_addr(ipserver);und von gethostbyname():
unsigned long GetIP( string Host) { struct hostent* HomeP; unsigned long HostIp; HostIp = inet_addr( Host.c_str() ); if( HostIp == INADDR_NONE ) { HomeP = gethostbyname( Host.c_str() ); if( !HomeP ) { return 0; } else HostIp = *(unsigned long *)HomeP->h_addr; }
-
Und warum geht es nicht? Fehlerbeschreibung??? Erkläre das Problem genauer.
-
wenn ich bei der funktion das "return 0" wegmache kommt folgender Fehler:
Unbehandelte Ausnahme bei 0x00a11787 in dsbot.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x0000000c.
-
Beide Funktionen liefern nur den unsigned long Wert, den du für connect brauchst.
Das hat mit der IP-Darstellung, die du meinst nichts zu tun.
Lies erst mal die Spezifikationen der beiden Funktionen und dann die von inet_ntoa (http://msdn.microsoft.com/en-us/library/ms738564(VS.85).aspx).
Kannst dir ja mal das hier ansehen (google top ten):
http://www.cplusplus.com/forum/articles/9742/
-
????
weis doch dass beide diesen unsigned long zurückgeben.also
meine funktion hat bis jetzt ja einwandfrei gefunzt nur de66.die-staemme.de klappt net.
-
Note The gethostbyname function has been deprecated by the introduction of the getaddrinfo function. Developers creating Windows Sockets 2 applications are urged to use the getaddrinfo function instead of gethostbyname.
Versuchs mal mit getaddrinfo.
http://msdn.microsoft.com/en-us/library/ms738520(v=VS.85).aspxWas du meinst ist nicht die IP sondern die aufgelöste Adresse.
127.0.0.1 ist z.B. eine IP.
-
ich kapier die letzten 2 parameter net so ganz
pHints [in, optional]
A pointer to an addrinfo structure that provides hints about the type of socket the caller supports. See Remarks for more details.
ppResult [out]A pointer to a linked list of one or more addrinfo structures that contains response information about the host.
was was sind die und wie müssen sie deklariert werden?