How do I query the iPhone's current IP address?

前端 未结 2 1635
不思量自难忘°
不思量自难忘° 2020-12-01 08:20

How do I query the iPhone\'s current IP address?

相关标签:
2条回答
  • 2020-12-01 09:04

    If you want the external IP address (the one used to connect from outside the local network), you need to query a server on the external network. A quick search yielded the following: http://checkip.dyndns.org, http://www.whatismyip.com. It is quite simple to load the page using e.g.

    [NSData dataWithContentsOfURL:url]

    and do some string manipulation to retrieve the IP address.

    If you want the internal IP address (the one assigned e.g. by DHCP to your device), what you can usually do is to resolve the device's hostname, i.e.

    
    /*
    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;
    }
    
    0 讨论(0)
  • 2020-12-01 09:14

    You can try to use similar to this service: Whatismyip and capture the string :)

    Credit to Erica Sadun's iPhone Developer's Cookbok, 2nd ed, page 555.

    0 讨论(0)
提交回复
热议问题