Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Qual'è l'indirizzo IP principale?
Forum - C/C++ - Qual'è l'indirizzo IP principale?

Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 21:41
Martedì, 23/03/2010
Salve a tutti. Ho trovato il seguente codice su internet per ottenere l'indirizzo IP della macchina sulla quale lo si esegue

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <winsock2.h>
  3. using namespace std;
  4. int doit(int, char **)
  5. {
  6.         char ac[80];
  7.         if (gethostname(ac, sizeof(ac)) == SOCKET_ERROR) {
  8.                 cerr << "Error " << WSAGetLastError() <<
  9.                                 " when getting local host name." << endl;
  10.                 return 1;
  11.         }
  12.         cout << "Host name is " << ac << "." << endl;
  13.  
  14.         struct hostent *phe = gethostbyname(ac);
  15.         if (phe == 0) {
  16.                 cerr << "Yow! Bad host lookup." << endl;
  17.                 return 1;
  18.         }
  19.  
  20.         for (int i = 0; phe->h_addr_list[i] != 0; ++i) {
  21.                 struct in_addr addr;
  22.                 memcpy(&addr, phe->h_addr_list[i], sizeof(struct in_addr));
  23.                 cout << "Address " << i << ": " << inet_ntoa(addr) << endl;
  24.         }
  25.  
  26.         return 0;
  27. }
  28.  
  29. int main(int argc, char *argv[])
  30. {
  31.         WSAData wsaData;
  32.         if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0) {
  33.                 return 255;
  34.         }
  35.  
  36.         int retval = doit(argc, argv);
  37.  
  38.         WSACleanup();
  39.  
  40.         return retval;
  41. }




Seccome restituisce più di un IP e tutti validi, mi chiedevo: il primo IP è sempre quello principale della macchina?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6378
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:58
Martedì, 23/03/2010
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à.
PM Quote
Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 22:02
Martedì, 23/03/2010
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?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6378
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:05
Martedì, 23/03/2010
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à.
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 22:35
Martedì, 23/03/2010
Come ha detto nessuno, non esiste un IP principale.


Il mio blog: https://piero.dev
PM Quote