krot Δημοσ. 21 Σεπτεμβρίου 2004 Δημοσ. 21 Σεπτεμβρίου 2004 Γειά, χρειάζομαι μία 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 που είναι συνδεμένος ο υπολογιστής (η συνάρτηση που έχω παίρνει την τελευταία). Πως θα ξέρω ποιά θα χρησιμοποιήσω; Ευχαριστώ
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.