#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 |
|