#import <ifaddrs.h>
02 | #import <arpa/inet.h> |
03 | // Get IP Address |
04 | - (NSString *)getIPAddress { |
05 | NSString *address = @ "error" ; |
06 | struct ifaddrs *interfaces = NULL; |
07 | struct ifaddrs *temp_addr = NULL; |
08 | int success = 0; |
09 | // retrieve the current interfaces - returns 0 on success |
10 | success = getifaddrs(&interfaces); |
11 | if (success == 0) { |
12 | // Loop through linked list of interfaces |
13 | temp_addr = interfaces; |
14 | while (temp_addr != NULL) { |
15 | if (temp_addr->ifa_addr->sa_family == AF_INET) { |
16 | // Check if interface is en0 which is the wifi connection on the iPhone |
17 | if ([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@ "en0" ]) { |
18 | // Get NSString from C String |
19 | address = [NSString stringWithUTF8String:inet_ntoa((( struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)]; |
20 | } |
21 | } |
22 | temp_addr = temp_addr->ifa_next; |
23 | } |
24 | } |
25 | // Free memory |
26 | freeifaddrs(interfaces); |
27 |
|