ok ma a me nn serve tutta la pagina....è possibile solo la riga dell'ip?
ok ma a me nn serve tutta la pagina....è possibile solo la riga dell'ip?
girando ho trovato questo esempio però nn mi stampa niente di coretto....prova a darci un occhiata
#include <iostream.h>
#include <winsock.h>
int main()
{
char ac[80];//Il nome
//Prendo il nome host locale:
if(gethostname(ac,sizeof(ac)) == SOCKET_ERROR) {
cerr << "Error" << WSAGetLastError() <<
"quando si e' tentato di recuperare il nome host locale." << endl;
}
//Recupero l'indirizzo dal nome host:
cout << "Il nome dell'host e':" << ac << "." << endl;
struct hostent *phe = gethostbyname(ac);
if(phe == 0) {
cerr << "L'host utilizzato per il lookup non e' valido" << endl;
}
//Questo ciclo for stampa tutti gli indirizzi associati all'host
//che possono essere più di uno, prelevandoli dalla struttura ritornata:
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 << "Indirizzo: " << i << ":" << inet_ntoa(addr) << endl;
}
return 0;
system("pause");
}
Questo dipende dalla pagina che usi per ottenere l'IP... alcune restituiscono solo l'IP, altre pagine web più o meno complicate di cui dovrai effettuare il parsing.ok ma a me nn serve tutta la pagina....è possibile solo la riga dell'ip?
Per inciso, puoi evitare di usare il file di appoggio. Leggi qui.
Amaro C++, il gusto pieno dell'undefined behavior.
Questo codice è per gli IP locali non per quello Internet.Originariamente inviato da jangy22xx
girando ho trovato questo esempio però nn mi stampa niente di coretto....
Non è che leggere una pagina e cercare dentro l'IP sia difficile ... se non vuoi usare il file, leggi il codice proposto ad MItaly.ok ma a me nn serve tutta la pagina....è possibile solo la riga dell'ip?
No MP tecnici (non rispondo nemmeno!), usa il forum.
no mi va benissimo usare i file il problema ora che con questo codice che ho modificato leggermente non mi salva il file mi fa solo visualizzare il sorgente della pagina sulla console.Originariamente inviato da oregon
Questo codice è per gli IP locali non per quello Internet.
Non è che leggere una pagina e cercare dentro l'IP sia difficile ... se non vuoi usare il file, leggi il codice proposto ad MItaly.
ce qualcosa di sbagliato?
//Dice al linker di linkare con urlmon.lib (funziona solo con VC++, con altri compilatori aggiungi urlmon.lib ai file da linkare)
#pragma comment(lib,"urlmon.lib")
#include <iostream>
#include <urlmon.h>
#include <fstream>
#include <string>
#include <io.h>
#define indirizzo "indirizzo sito web"
using namespace std;
int main()
{
char tempFileName[]="c:\\temp\\temp.tmp";
char buffer[256];
_mktemp(tempFileName);
cout<<"Inserisci l'indirizzo della pagina: ";
if(URLDownloadToFile(NULL,indirizzo,tempFileName,0 ,NULL)!=S_OK)
{
cerr<<"Impossibile effettuare il download del file.";
}
else
{
ifstream is;
is.open(tempFileName,ios::in | ios::binary);
if(!is)
{
cerr<<"Impossibile leggere il file scaricato.";
}
else
{
while(is)
{
is.read(buffer,sizeof(buffer));
cout.write(buffer,is.gcount());
}
is.close();
}
remove(tempFileName);
}
return 0;
}
Salva il file eccome, ma in un file temporaneo che alla fine rimuove. Se vuoi salvare il contenuto della pagina su file quello che ti interessa di quel codice è solo la chiamata alla funzione URLDownloadToFile.
Amaro C++, il gusto pieno dell'undefined behavior.
a ok hai ragione grazie...ok...e però per salvare sul file solo l'indirizzo ip e non tutta la pagina come devo procedere?scusa le tante domande ma con i file sono alle prime armiOriginariamente inviato da MItaly
Salva il file eccome, ma in un file temporaneo che alla fine rimuove. Se vuoi salvare il contenuto della pagina su file quello che ti interessa di quel codice è solo la chiamata alla funzione URLDownloadToFile.
Come detto sopra, devi effettuare il parsing della pagina per estrarne l'IP (operazione per la quale ti converrebbe utilizzare il metodo per ottenere il codice della pagina in memoria, così da evitare un file temporaneo), oppure cercare un sito che ti restituisca solo il valore dell'IP invece di una pagina HTML che lo contiene. Nel primo caso potresti usare questa, che è particolarmente facile da "smontare".
Amaro C++, il gusto pieno dell'undefined behavior.
ok quella pagina è piu comoda in effetti....un altra cosa ho notato che devo usare visual c++ per compilarlo....con devc++ mi da degli errori...che librerie devo linkare o aggiungere?Originariamente inviato da MItaly
Come detto sopra, devi effettuare il parsing della pagina per estrarne l'IP (operazione per la quale ti converrebbe utilizzare il metodo per ottenere il codice della pagina in memoria, così da evitare un file temporaneo), oppure cercare un sito che ti restituisca solo il valore dell'IP invece di una pagina HTML che lo contiene. Nel primo caso potresti usare questa, che è particolarmente facile da "smontare".
Non devi usare la pragma e devi linkare la libreria liburl.aOriginariamente inviato da jangy22xx
ok quella pagina è piu comoda in effetti....un altra cosa ho notato che devo usare visual c++ per compilarlo....con devc++ mi da degli errori...che librerie devo linkare o aggiungere?
No MP tecnici (non rispondo nemmeno!), usa il forum.