Thursday, July 15, 2010

Finding Wi-Fi IP address of iphone

It will work for any unix-like system- might need to change "en0" to something else

#include <ifaddrs.h>
const char* http_ip_address(void)
{
struct ifaddrs *interfaces = NULL;
struct ifaddrs *temp_addr = NULL;
int success = 0;

// retrieve the current interfaces - returns 0 on success
success = getifaddrs(&interfaces);
if (success != 0) return NULL;

// Loop through linked list of interfaces
temp_addr = interfaces;
while(temp_addr != NULL)
{
if(temp_addr->ifa_addr->sa_family == AF_INET)
{
// Check if interface is en0 which is the wifi connection on the iPhone
if(!strcmp(temp_addr->ifa_name,"en0"))
{
freeifaddrs(interfaces);
return inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr);
}
}

temp_addr = temp_addr->ifa_next;
}

// Free memory
freeifaddrs(interfaces);
return NULL;
}

No comments:

Post a Comment