iOS 獲取本地設備IP地址

#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

    return address;}

轉自http://www.open-open.com/lib/view/open1392036253989.html

發佈了35 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章