Adres IP na podstawie nazwy hosta
No właśnie... Poniżej jest funkcja zwracająca adres IP komputera na podstawie podanej jako parametr nazwy hosta.
#include <winsock2> AnsiString GetIP(String nam) { WSADATA data; HOSTENT *pH; in_addr addr; AnsiString IP = ""; if(WSAStartup(MAKEWORD(1,1), &data)) return ""; pH = gethostbyname(nam.c_str()); if(pH) { if(pH->h_addr) { memcpy (&addr, pH->h_addr,pH->h_length); IP = AnsiString(inet_ntoa(addr)); } } else IP="?.?.?.?"; //jeżeli nie uda się połączyć [zdarza się, że w listingu sieci (i w Otoczeniu Sieciowym w Win) pozostaje jeszcze nazwa komputera, mimo że jest on już wyłączony... WSACleanup(); return IP; } //---------------------------------------------------------------------------
2 komentarze
Dzięki za program.
Chciałbym tylko dodać od siebie, że ip lokalne (127.0.0.1) to "localhost", a aby pobrać ip swojego komputera należy wpisać pustego Stringa ""
Pozdrawiam.
W UNIX`sie struct hostent *gethostbyname(char *hostname) znajduje się w pliku nagłówkowym netdb.h
pozdrawiam :)