• IOS中如何获取手机的当前IP


    网上有许多类似的帖子、在搜索了资料以后、觉得下面的方法是最简单的、

    使用的时候直接把类方法拖到自己新建的分类中就行、

    .h文件

    #import <Foundation/Foundation.h>

    @interface NSObject (GetIP)

    + (NSString *)deviceIPAdress;

    @end

    .m文件

    #import "NSObject+GetIP.h"

    #include <ifaddrs.h>

    #include <arpa/inet.h>

    上面的两个头文件一定要导入


    @implementation NSObject (GetIP)

    + (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);
        
    //    NSLog(@"手机的IP是:%@", address);
        
        return address;
    }


    @end

  • 相关阅读:
    初级程序员面试不靠谱指南(三)
    [细节决定B度]之回首一瞥cout<<"Hello,world"<<endl;
    20110310日记wmh
    SliverLight 控件属性的赋值方式
    20110309wmh日记
    20110308wmh日记
    20110307wmh日记
    STOAdiary20110314完成的任务
    20110313wmh日记
    20110311wmh日记
  • 原文地址:https://www.cnblogs.com/er-dai-ma-nong/p/4876598.html
Copyright © 2020-2023  润新知