DahuangPhoneiOSiOS学习 → iOS最简单获取IP方法


  共有7792人关注过本帖平板打印复制链接

主题:iOS最简单获取IP方法

帅哥哟,离线,有人找我吗?
dahuangphone
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:407 积分:4533 威望:0 精华:0 注册:2012/9/29 7:54:10
iOS最简单获取IP方法  发帖心情 Post By:2015/8/15 9:58:45 [只看该作者]

 //

//  HYBIPHelper.h

//  XiaoYaoUser

//

//  Created by 黄仪标 on 14/12/9.

//  Copyright (c) 2014 xiaoyaor. All rights reserved.

//


#import <Foundation/Foundation.h>


@interface HYBIPHelper : NSObject


/*!

 * get device ip address

 */

+ (NSString *)deviceIPAdress;


@end



-------------------------------------------------------------------------------------------


//

//  HYBIPHelper.m

//  XiaoYaoUser

//

//  Created by 黄仪标 on 14/12/9.

//  Copyright (c) 2014 xiaoyaor. All rights reserved.

//


#import "HYBIPHelper.h"


#include <ifaddrs.h>

#include <arpa/inet.h>



@implementation HYBIPHelper


+ (NSString *)deviceIPAdress {

    NSString *address = @"an error occurred when obtaining ip address";

    struct ifaddrs *interfaces = NULL;

    struct ifaddrs *temp_addr = NULL;

    int success = 0;

    

    success = getifaddrs(&interfaces);

    

    if (success == 0) { // 0 表示获取成功

        

        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;

        }

    }

    

    freeifaddrs(interfaces);

    

    DDLogVerbose(@"手机的IP是:%@", address);  

    return address;  

}  


@end




 回到顶部