Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[WinSock, Windows] Pobieranie IP

Ostatnio zmodyfikowano 2011-09-06 19:04
Autor Wiadomość
Mrovqa
Temat założony przez niniejszego użytkownika
[WinSock, Windows] Pobieranie IP
» 2011-09-05 20:06:37
Witam!

Tak jak w temacie - chcę pobrać IP za pomocą WinSock pod windowsem. Konkretnie: nie mam żadnego gniazda i chcę zdobyć adres IP komputera, z którego odpalono aplikację. (Chcę wypisać ten adres :D).
Jak tego dokonać? Szukałem, ale tym razem coś mi nie wychodzi... (coś widziałem na MSDN, ale trza było linkować dodatkową bibliotekę).

/edit:
troszkę zmienić frazę w google... :P
mam coś takiego:
C/C++
#include <iostream>
#include <winsock.h>
using namespace std;

int doit( int, char ** )
{
    char ac[ 80 ];
    if( gethostname( ac, sizeof( ac ) ) == SOCKET_ERROR ) {
        cerr << "Error " << WSAGetLastError() <<
        " when getting local host name." << endl;
        return 1;
    }
    cout << "Host name is " << ac << "." << endl;
   
    struct hostent * phe = gethostbyname( ac );
    if( phe == 0 ) {
        cerr << "Yow! Bad host lookup." << endl;
        return 1;
    }
   
    for( int i = 0; phe->h_addr_list[ i ] != 0; ++i ) {
        struct in_addr addr;
        memcpy( & addr, phe->h_addr_list[ i ], sizeof( struct in_addr ) );
        cout << "Address " << i << ": " << inet_ntoa( addr ) << endl;
    }
   
    return 0;
}

int main( int argc, char * argv[] )
{
    WSAData wsaData;
    if( WSAStartup( MAKEWORD( 1, 1 ), & wsaData ) != 0 ) {
        return 255;
    }
   
    int retval = doit( argc, argv );
   
    WSACleanup();
    cin.get();
   
    return retval;
}
I problem taki: IP się różnią!
Możliwe że tak powinno być (nie jestem może doinformowany :D). Chodzi mi o zdobycie adresu IP takiego:
na moim komputerze włączam serwer (i właśnie IP z komputera pobieram i wstukuje jako serwera), a potem go wypisuje (żeby wiedzieć co klientowi wpisać; user wprowadza). Stronka MojeIp.net czy moja aplikacja ma raczej rację ? ;]

Dzięki za poświęcony czas i uwagę!

Pozdrawiam,
Mrowqa
P-40557
Drraven
» 2011-09-05 20:39:44
Co pisze się wirusa :D?
Ja jak się bawiłem w taki komunikator na informatyce to zrobiłem stronę na której był wyświetlany tylko adres ip, potem pobierałem to cURLem pakowałem w stringa i wiola. Ale wiem, że istnieje pewnie lepszy sposób :D
P-40561
Mrovqa
Temat założony przez niniejszego użytkownika
» 2011-09-05 20:44:29
Nie, nie wirusa :D Tylko pierwszy program w WinSock i chcę znać IP i port (żeby wypisać, żeby wiedzieć co klientowi wstukać). Póki co puszczałem to na hoście lokalnym (127.0.0.1).
P-40563
m4tx
» 2011-09-05 20:46:45
Różnią się, a to dlatego, że masz prywatne IP :P
P-40565
Drraven
» 2011-09-05 20:50:22
Może to przez ip zewnętrzne/wewnętrzne (mi wszystkie wyglądają na zew.). A może jeden adres to adres komputera, drugi to adres rutera (czy co tam gość ma) a ten z strony to adres z przeglądarki bo masz proxy :D?
P-40568
malan
» 2011-09-05 23:01:18
To są wewnętrzne adresy (tzn. te, które wyświetla Twój program). Pierwszy to jest chyba adres Twojego komputera, a drugi... W czasie działanie programu miałeś uruchomimy jakiś inny komputer podpięty do sieci?
P-40577
yoogi
» 2011-09-06 13:55:12
Tutaj masz dobry kurs:
http://warsztat.gd/articles.php?x=view&id=274

mi wszystko chodzi jak trzeba
P-40580
pekfos
» 2011-09-06 16:28:56
Co pisze się wirusa :D?
Nie, nie wirusa :D
Oczywiście że nie wirusa. Prędzej robaka :P
P-40587
« 1 » 2
  Strona 1 z 2 Następna strona