Προς το περιεχόμενο

Πώς βρήσκω την IP (c++)


krot

Προτεινόμενες αναρτήσεις

Δημοσ.

Γειά,

 

χρειάζομαι μία function να παίρνει την ip του υπολογιστή μου.

Χρησιμοποιώ gcc δηλ. έχω μόνο της standart συναρτήσεις του winapi

(δεν μου κάνει απάντηση που να χρησιμοποιεί συναρτήσεις της visual c++)

 

 

 

έχω βρει το παρακάτω:

>

int getcurrentip(char* ipstr){
WSADATA WSAData;
WSAStartup(MAKEWORD(1, 0), &WSAData);
char szHostName[128] = "";
gethostname(szHostName, sizeof(szHostName));
struct sockaddr_in SocketAddress;
struct hostent     *pHost        = 0;
pHost = gethostbyname(szHostName);
char aszIPAddresses[10][16]; // maximum of ten IP addresses

for(int iCnt = 0; ((pHost->h_addr_list[iCnt]) && (iCnt < 10)); ++iCnt){
 memcpy(&SocketAddress.sin_addr, pHost->h_addr_list[iCnt], pHost->h_length);
 strcpy(aszIPAddresses[iCnt], inet_ntoa(SocketAddress.sin_addr));
   strcpy(ipstr, inet_ntoa(SocketAddress.sin_addr));
 }
WSACleanup();
}

 

Το πρόβλημα είναι ότι στο array pHost->h_addr_list υπάρχουν πολλές IP, ανάλογα με τα subnet που είναι συνδεμένος ο υπολογιστής (η συνάρτηση που έχω παίρνει την τελευταία). Πως θα ξέρω ποιά θα χρησιμοποιήσω;

 

Ευχαριστώ

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...