[C++]Sprawdzanie własnego IP

marccinn

Użytkownik
Dołączył
Grudzień 5, 2007
Posty
19
Witam. W pewnym kursie programowania sieciowego dowiedziałem się o funkcji gethostname(char*, int); , która służy do pobierania nazwy komputera. Niestety, gdy wywołałem ją w swoim programie, zwróciła mi tylko lokalną nazwę mojego kompa (czyli to co podawałem przy instalacji Windows). Pełną satysfakcję uzyskałbym, gdyby dało się jakoś sprawdzić swój zewnętrzny adres IP (mam Neostradę, więc takowy posiadam).

Jeżeli ktoś jest w stanie mi jakoś doradzić, to prosiłbym o napisanie, jakiej funkcji mogę do tego celu użyć. Piszę w C++ z wykorzystaniem Winsock 2.
Z góry dzięki za pomoc.
smile.gif
 

sinis

Użytkownik
Dołączył
Wrzesień 3, 2006
Posty
958
Kod:
char* GetIP()
{
    char cale[100]={0};
    hostent *lphe;
    gethostname(cale, 100);
    lphe = gethostbyname(cale);
    return inet_ntoa(*(in_addr*)*lphe->h_addr_list);
}
Wcześniej oczywiście musisz zainicjalizować WinSock'a.
 

marccinn

Użytkownik
Dołączył
Grudzień 5, 2007
Posty
19
<div class='quotetop'>CYTAT(trok @ 8.05.2008, 15:36) <{POST_SNAPBACK}></div>
A jak zrobic to pod linuksem?[/b]
Hmm... a powyższy kod nie działa? Mniemam że powinien działać, tylko trzeba oczywiście przyłączyć odpowiednie pliki nagłówkowe - te same co w każdym "zwykłym" programie sieciowym...
 
Do góry Bottom