IOS中如何获取手机的当前IP - 二呆码农

er-dai-ma-nong 2021-11-28 原文


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

发表于
2015-10-14 10:08 
二呆码农 
阅读(958
评论(0
编辑 
收藏 
举报

 

版权声明:本文为er-dai-ma-nong原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/er-dai-ma-nong/p/4876598.html

IOS中如何获取手机的当前IP - 二呆码农的更多相关文章

  1. Parameter index out of range (1 > number of parameters, which is 0).

    数据库错误:Parameter   index   out   of   range   (1   > […]...

  2. Mysql高手系列 – 第21篇:什么是索引?

    Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能。 这是Mysql系列第21篇 […]...

  3. Android屏幕保持唤醒状态 – pillow_zhou

    Android屏幕保持唤醒状态 我们程序偶尔会有需要屏幕一直或较长时间的保持唤醒状态,而用户的睡眠时间又设置的 […]...

  4. h5跳转到app的实现 – 于文超

    h5跳转到app的实现        随着业务的增加,可能存在这么一种需求,就是需要从h5中直接跳转到app。 […]...

  5. RC4被JDK8默认禁用导致腾讯QQ邮箱无法访问 – 季枫

    7月29日开始,腾讯修改了邮箱的加密方式,导致我们线上的所有的腾讯代收、代发邮件的功能全部失效。解决方法在最后 […]...

  6. 微信公众平台开发教程第20篇-新手解惑40则 – 无网不进

    微信公众平台开发教程第20篇-新手解惑40则         笔者在CSDN博客频道推出微信公众平台开发教程之 […]...

  7. WMS库存管理系统解决方案 – 北京开运联合

    WMS库存管理系统解决方案 项目背景我国厂家开发的WMS库存管理系统,经过多年的换新和迭代,仓库中的要求性会因 […]...

  8. 机器学习术语中英对照表 – Alex0111

    机器学习术语中英对照表 反向传播 BPTT Backpropagation Through Time 通过时间 […]...

随机推荐

  1. 前端老员工为何劝新手不要学HTML5

         老前端的意思可能是要新手先打好基础吧,一下子上来就整HTML5也许不太可能,个人认为是因为HTML5 […]...

  2. 蓝牙TWS耳机IBRT的原理初分析

      最近在倒腾TWS对耳的一些东西,看到一些源码,发现一个新概念,IBRT没有搞清楚,抱着吾将上下而求索的态度 […]...

  3. gitlab 建立本地仓库

    1.首先在gitlib上进行注册 注册与登录 为了用户的隐私,我们的私人 GitLab 平台关闭了自主注册。申 […]...

  4. 使用Jmeter进行APP接口测试经验总结

    使用工具:   Fiddler、Jmeter   测试步骤:   1.    确认接口   从开发人员那里获取 […]...

  5. WPF 画一个3D矩形并旋转

    具体的代码还是线性代数。 主要是旋转和平移。 这个例子的中模型是在世界原点建立。所以旋转会以自身轴心旋转。 如 […]...

  6. Junit4单元测试的基本用法

    看了一些Junit4的视频,简单了解了Junit4的一些基本用法,整理记录一下。   环境搭建 这里使用的开发 […]...

  7. [Excel常用函数] countif & countifs函数

    countif函数1.countif函数的含义在指定区域中按指定条件对单元格进行计数(单条件计数) 2.cou […]...

  8. 分库分表之第三篇

    分库分表之第三篇 3. Sharding-JDBC执行原理 3.1 基本概念 3.2. SQL解析 3.3.S […]...

展开目录

目录导航