zoukankan      html  css  js  c++  java
  • iOS获取手机IP地址

     

     

     

    #import <ifaddrs.h>

     

    #include <arpa/inet.h>

     

    #include <net/if.h>

     

    //获取IP地址

    +(NSDictionary *)getIPAddress{   

        //无线

        NSString *wifilocalIP = @"";

        //

        NSString *simcardlocalIp = @"";

        //代理

        NSString *agentlocalIp = @"";

        BOOL success;

        struct ifaddrs * addrs;

        const struct ifaddrs * cursor;

        NSMutableDictionary *ipTempDic = [NSMutableDictionary dictionary];

        //无线

        NSString *wifilocalIP = @"";

        //

        NSString *simcardlocalIp = @"";

        //代理

        NSString *agentlocalIp = @"";

        success = getifaddrs(&addrs) == 0;

        if (success) {

            cursor = addrs;

            while (cursor != NULL) {

                // the second test keeps from picking up the loopback address

                if (cursor->ifa_addr->sa_family == AF_INET && (cursor->ifa_flags & IFF_LOOPBACK) == 0)

                {

                    NSString *name = [NSString stringWithUTF8String:cursor->ifa_name];

                    //猜的无线

                    if ([name isEqualToString:@"en0"] || [name isEqualToString:@"en1"] || [name isEqualToString:@"en2"])

                    {

                        wifilocalIP = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)cursor->ifa_addr)->sin_addr)];

                        [ipTempDic setObject:wifilocalIP forKey:@"wifilocalIP"];

                        //NSLog(@"wifilocalIP%@",wifilocalIP);

                    }

                    //猜的卡

                    else if ([name isEqualToString:@"pdp_ip0"] || [name isEqualToString:@"pdp_ip1"] || [name isEqualToString:@"pdp_ip2"])

                    {

                        simcardlocalIp = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)cursor->ifa_addr)->sin_addr)];

                        [ipTempDic setObject:simcardlocalIp forKey:@"simcardlocalIp"];

                        //NSLog(@"simcardlocalIp%@",simcardlocalIp);

                    }

                    else if ([name isEqualToString:@"ppp0"] || [name isEqualToString:@"ppp01"] || [name isEqualToString:@"ppp02"])

                    {

                        agentlocalIp = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)cursor->ifa_addr)->sin_addr)];

                        [ipTempDic setObject:agentlocalIp forKey:@"agentlocalIp"];

                        // NSLog(@"agentlocalIp%@",agentlocalIp);

                    }

                }

                cursor = cursor->ifa_next;

            }

            freeifaddrs(addrs);

        }

        wifilocalIP = [ipTempDic objectForKey:@"wifilocalIP"];

        if (wifilocalIP == nil) {

            wifilocalIP = @"notfound";

        }

        simcardlocalIp = [ipTempDic objectForKey:@"simcardlocalIp"];

        if (simcardlocalIp == nil) {

            simcardlocalIp = @"notfound";

        }

        agentlocalIp = [ipTempDic objectForKey:@"agentlocalIp"];

        if (agentlocalIp == nil) {

            agentlocalIp = @"notfound";

        }

      NSLog(@"获取到的ip地址是*********%@********",threeIpDic);

     

       return ipTempDic;

    }

  • 相关阅读:
    Java基础知识回顾-20(泛型)
    Java基础知识回顾-19(Collect接口,Iterator迭代器与增强for循环)
    Java基础知识回顾-18(Math类,Arrays类和大数据运算)
    Java基础知识回顾-17(基本类型包装类与System类)
    Java基础知识回顾-16(Date,DateFormat和Calendar)
    PSP DAILY软件功能说明书
    第六周PSP
    王者荣耀交流协会第二次Scrum立会
    找bug——加分作业
    第五周PSP
  • 原文地址:https://www.cnblogs.com/slc-lover/p/5886334.html
Copyright © 2011-2022 走看看