PDA

Visualizza la versione completa : [c]funzione per conoscere ip locale e pubblico


j4ck_andros
12-01-2008, 15:38
ciao
devo fare una funzione che salva su un file l'ip locale e pubblico.
per scriverlo su un file lo so fare ma per avere l'ip no...

grazie

pallinopinco
12-01-2008, 16:20
Questa domanda stata posta decine di volte sul forum, effettua una ricerca.

j4ck_andros
12-01-2008, 18:03
ho provato a fare una ricerca ma non va....
mi dice sempre che ho inserito meno di 3 caratteri ma non vero perche io metto come chiave di ricerca "indirizzo ip".

pallinopinco
12-01-2008, 20:08
Ti dice giustamente che la stringa IP formata da meno di 3 caratteri, cerca ottenere indirizzo.

j4ck_andros
13-01-2008, 01:03
gethostname(nome_host, sizeof(nome_host));
printf ("hosting: %s\n\a", nome_host);

ip = gethostbyname(nome_host);


int i;
for (i = 0; ip->h_addr_list[i] != 0; i++)
{
memcpy(&addr, ip->h_addr_list[i], sizeof(struct in_addr));

printf(" %s\n\a", inet_ntoa(addr));
}

cosi mi visualizza solo l'ip locale 192.168.102 della lan...
ma per visualizzare anche l'ip con cui mi collego ad internet come devo fare?

XWolverineX
13-01-2008, 11:06
Interesserebbe anche a me

pallinopinco
13-01-2008, 11:48
Il metodo pi semplice consiste nell'interrogare con una banalissima richiesta HTTP l'URL http://www.whatismyip.org/.

XWolverineX
13-01-2008, 13:04
Ah bel sito...non restituisce codice html ma direttamente la striga.
Potrei vedere un esempio...o comunque una spiegazione su come si potrebbe fare?

j4ck_andros
13-01-2008, 13:26
ho provato fare un programma che si connette ad una pagina php che prende l'ip e lo salva su un file ma quando si connette non mi salva l'ip sul file, come se non si proprio connesso.
lo script in php che ho fatto giusto anche perche quando mi connetto con il brwoser funziona....
il codice che ho usato questo:


#include <stdio.h>
#include <wininet.h>
int main()
{
HINTERNET conn,open;
open=InternetOpen(NULL,INTERNET_OPEN_TYPE_DIRECT,N ULL,NULL,0);
if(!open)
{
printf("errore\n");
return 0;
}
conn=InternetConnect(open,"http://www.proghack.altervista.org/ip.php/",INTERNET_DEFAULT_HTTP_PORT,NULL,NULL,INTERNET_SER VICE_HTTP,0,0);
if(!conn)
{
printf("errore durante la connessione al sito\n");
return 0;
}
printf("connesso\n");
return 0;

}

c' qualche errore che faccio?

XWolverineX
13-01-2008, 13:46
Forse lo slash dopo .php?

Loading