Если вы хотите получить внешний 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;
}