Как запросить текущий IP-адрес iPhone?

Как запросить текущий IP-адрес iPhone?

Ответы

Ответ 1

Если вам нужен внешний IP-адрес (тот, который используется для подключения из-за пределов локальной сети), вам необходимо запросить сервер во внешней сети. Быстрый поиск дал следующее: http://checkip.dyndns.org, http://www.whatismyip.com. Загружать страницу довольно просто, используя, например,

[NSData dataWithContentsOfURL:url]

и выполните некоторые строковые манипуляции, чтобы получить IP-адрес.

Если вам нужен IP-адрес внутренний (тот, который назначен, например, DHCP на ваше устройство), то, что вы обычно можете сделать, это разрешить имя хоста устройства, то есть


/*
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;
}

Ответ 2

Вы можете попробовать использовать аналогичную услугу: Whatismyip и зафиксировать строку:)

Кредит Эрике Садун iPhone Разработчик Cookbok, 2-е изд., стр. 555.