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;

    }

  • 相关阅读:
    About DEBUG_NEW
    [bbk5161] 第107集 第13章 表空间管理 05
    [bbk4975] 第103集 第13章 表空间管理 01
    [bbk5156] 第106集 第13章 表空间管理 04
    [bbk4998] 第104集 第13章 表空间管理 02
    [bbk4965] 第102集 第13章 表空间管理 00
    [bbk5119] 第105集 第13章 表空间管理 03
    如何查看表占用空间情况?
    如何手工回收段空间?
    [bbk5162] 第108集 第13章 表空间管理 06
  • 原文地址:https://www.cnblogs.com/slc-lover/p/5886334.html
Copyright © 2011-2022 走看看