Oppure

Loading
23/03/10 20:41
robrock80
Salve a tutti. Ho trovato il seguente codice su internet per ottenere l'indirizzo IP della macchina sulla quale lo si esegue

#include <iostream>
#include <winsock2.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();

	return retval;
}



Seccome restituisce più di un IP e tutti validi, mi chiedevo: il primo IP è sempre quello principale della macchina?
aaa
23/03/10 20:58
nessuno
Non esiste il concetto di "IP principale" ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
23/03/10 21:02
robrock80
Mi spieghi una cosa: fino a che ho trovato questo codice ero convinto una macchina avesse un solo indirizzo IP, ma come mai ce n'è piu di uno?
aaa
23/03/10 21:05
nessuno
Per mille motivi ... puoi avere più schede di rete ... ogni scheda di rete può avere più IP su cui il sistema risponde ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
23/03/10 21:35
pierotofy
Come ha detto nessuno, non esiste un IP principale.
Il mio blog: piero.dev