iOS 得到當前設備的IP地址

首先要引入頭文件

#import <ifaddrs.h>
#import <arpa/inet.h>

下面是實現代碼

+(NSString *) getIpAddress {
   NSString *address = @"error";
   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) {
      // 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([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) {
               // Get NSString from C String
               address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];
            }
         }
         temp_addr = temp_addr->ifa_next;
      }
   }
   // Free memory
   freeifaddrs(interfaces);
   return address;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章