Quote:
Originariamente inviato da Teo@Unix
attenzione. questo non è sufficiente, la funzione ritorna solo l'hostName del pc locale...
"The gethostname function retrieves the standard host name for the local computer."
i modi sono più di uno...
in C++, probabilmente le librerie che usi hanno una classe che lo può fare, cmq questo è un esempio che va bene anche per il C++:
Codice:
// *** Windows ***
/* Un esempio per ricavare l'indirizzo IP della macchina locale */
#include <iostram.h>
#include <winsock.h>
int require()
{
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;
return 1;
}
//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;
return 1;
}
//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;
}
|
grazie mille ora lo provo....ma dove l'hai trovato?