2008-11-04 6 views

Antwort

4

Sie können versuchen, diesen Dienst ähnlich zu nutzen: Whatismyip und erfassen die Zeichenfolge :)

Credit Erica Sadun iPhone Entwicklers Cookbok, 2. Auflage, Seite 555.

13

Wenn Sie die externen wollen IP-Adresse (die für die Verbindung von außerhalb des lokalen Netzwerks), müssen Sie einen Server im externen Netzwerk abfragen. Eine schnelle Suche ergab folgendes: http://checkip.dyndns.org, http://www.whatismyip.com. Es ist ziemlich einfach, die Seite unter Verwendung z.B.

[NSData dataWithContentsOfURL:url]

und einige String-Manipulation zum Abrufen der IP-Adresse.

Wenn Sie die interne IP-Adresse (die eine zugewiesen zB durch DHCP auf dem Gerät), was Sie können in der Regel tun, ist das Gerät des Hostnamen aufzulösen, dh


/* 
Returns the local IP, or NULL on failure. 
*/ 
const char* GetLocalIP() { 
    char buf[256]; 
    if(gethostname(buf,sizeof(buf))) 
    return NULL; 
    struct hostent* he = gethostbyname(buf); 
    if(!he) 
    return NULL; 
    for(int i=0; he->h_addr_list[i]; i++) { 
    char* ip = inet_ntoa(*(struct in_addr*)he->h_addr_list[i]); 
    if(ip != (char*)-1) return ip; 
    } 
    return NULL; 
} 
+4

+1 für die interne IP-Adresse Code. –

+1

manchmal meine Benutzer null, wissen Sie, was der Grund ist? – HelmiB

+0

Sorry, einen alten Thread zu stoßen, aber jede Chance, jemand könnte mir helfen, dies zu konvertieren, schnell? – fischgeek

Verwandte Themen