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: 6402
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: 6402
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