现在的位置: 首页 > 综合 > 正文

得到iPhone的IP地址函数

2016年08月29日 ⁄ 综合 ⁄ 共 1040字 ⁄ 字号 评论关闭
#include
<ifaddrs.h>
#include
<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:@
"en1"])
                {
                    //
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;
}
//该代码片段来自于: http://www.sharejs.com/codes/objectc/3902

抱歉!评论已关闭.