Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >iOS 获取IP地址

iOS 获取IP地址

作者头像
星宇大前端
发布于 2019-01-15 06:50:50
发布于 2019-01-15 06:50:50
1.7K0
举报
文章被收录于专栏:大宇笔记大宇笔记

// Get IP Address

- (NSString *)getIPAddress {

NSString *address =@"error";

structifaddrs *interfaces = NULL;

structifaddrs *temp_addr = NULL;

int success =0;

// retrieve the current interfaces - returns 0 on success

    success = getifaddrs(&interfaces);

if (success ==0) {

// Loop through linked list of interfaces

        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([[NSStringstringWithUTF8String:temp_addr->ifa_name]isEqualToString:@"en0"]) {

// Get NSString from C String

                    address = [NSStringstringWithUTF8String:inet_ntoa(((structsockaddr_in *)temp_addr->ifa_addr)->sin_addr)];

                }

            }

            temp_addr = temp_addr->ifa_next;

        }

    }

// Free memory

freeifaddrs(interfaces);

return address;

}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年11月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
iOS开发 Wifi相关
1.获取Wifi相关信息 一般我们常用Wifi信息有Wifi的名称:SSID,还有Wifi的MAC地址:BSSID iOS12后,需要在Capabilities中,激活Access WiFi Information项 iOS13后,需要申请定位权限 #import <SystemConfiguration/CaptiveNetwork.h> /** 获取当前Wifi名字 */ + (NSString *)currentWiFiName{ NSArray *ifs = (__bridge_transf
韦弦zhy
2020/02/18
9460
iOS开发中WiFi相关功能总结
查漏补缺集是自己曾经做过相关的功能,但是重做相关功能或者重新看到相关功能的实现,感觉理解上更深刻。这一类的文章集中记录在查漏补缺集。
Haley_Wong
2018/08/22
1.7K0
iOS开发中WiFi相关功能总结
进程间的实时通讯方案: local socket(解决扩展和容器应用的实时通讯问题)
如果你对IPC不了解,可以先看下这篇- Inter process Communication
公众号iOS逆向
2021/01/18
2K0
进程间的实时通讯方案: local socket(解决扩展和容器应用的实时通讯问题)
linux-c getifaddrs API 例子源代码
注意:IP地址和 ifa->ifa_addr magic之间相互转换需要使用inet_ntop相关API。
tankaro
2025/03/21
670
Linux下编程获取本地IP地址的常见方法
代码编译运行平台:Linux 64bits+g++(-m64),-m64表示生成64bits的程序。
恋喵大鲤鱼
2018/08/03
8.1K0
Linux下编程获取本地IP地址的常见方法
IOS 下三种 DNS 解析方式分析(LocalDns)
最近在做 iOS 的 DNS 解析,顺便研究了下 iOS 端本地的 DNS 解析方式(localDNS), 也就是不依赖 Http 请求,而是用原始的 API 进行解析,虽然有 HttpDNS 但是考虑到成本、第三方服务稳定性的问题,LocalDNS 仍然是一个很重要的部分,在 iOS 系统下,localDNS 的解析方式有三种,下面主要对三种方式进行下利弊分析及简单的原理介绍。
molier
2022/11/02
3.8K0
IOS 下三种 DNS 解析方式分析(LocalDns)
一文搞懂网络套接字编程
为使网络程序具有可移植性,使同样的C代码在大端和小端计算机上编译后都能正常运行,可以调用以下库函数做网络字节序和主机字节序的转换。
海盗船长
2020/08/27
6410
libuv源码阅读(9)--interfaces
简单来说就是调用linux系统的:getifaddrs 和 freeifaddrs,读取系统的网卡接口信息,然后拷贝到用户的缓冲区中,然后再释放函数内部的内存。逻辑比较简单,就不仔细研究网卡接口信息的结构体了。
wanyicheng
2021/03/12
5660
监测网络状态(AFNetworking) 服务端 客户端
//监测网络状态(AFNetworking) import "ViewController.h" //引入第三方框架 import "AFNetworking/AFNetworking.h" @interface ViewController () @end @implementation ViewController (void)viewDidLoad { [super viewDidLoad]; //检查网络状态 [self checkNetworkStates]; } #pragma m
用户7108768
2021/10/29
1.1K0
iOS 获取 IP 地址方法iOS 获取 IP 地址方法
一直以来我们获取IP地址方法都是直接百度一查,或者老代码里就已经存在这部分代码然后直接使用。今天归纳一下常见的两种方法以及如何选择:
韦弦zhy
2021/11/24
8K0
iOS 获取 IP 地址方法iOS 获取 IP 地址方法
socket 编程--sockaddr与sockaddr_in区别与联系(转)
在linux环境下,结构体struct sockaddr在/usr/include/linux/socket.h中定义,具体如下: typedef unsigned short sa_family_t; struct sockaddr { sa_family_t sa_family; /* address family, AF_xxx */ char sa_data[14]; /* 14 bytes of protocol address */ 在linux环境下,结构体struct sockaddr_in在/usr/include/netinet/in.h中定义,具体如下: /* Structure describing an Internet socket address. */ struct sockaddr_in { __SOCKADDR_COMMON (sin_); in_port_t sin_port; /* Port number. */ struct in_addr sin_addr; /* Internet address. */ /* Pad to size of `struct sockaddr'. */ unsigned char sin_zero[sizeof (struct sockaddr) - __SOCKADDR_COMMON_SIZE - sizeof (in_port_t) - sizeof (struct in_addr)]; /* 字符数组sin_zero[8]的存在是为了保证结构体struct sockaddr_in的大小和结构体struct sockaddr的大小相等 */ }; struct sockaddr是通用的套接字地址,而struct sockaddr_in则是internet环境下套接字的地址形式,二者长度一样,都是16个字节。二者是并列结构,指向sockaddr_in结构的指针也可以指向sockaddr。一般情况下,需要把sockaddr_in结构强制转换成sockaddr结构再传入系统调用函数中。 下面是struct sockaddr_in中用到两个数据类型,具体定义如下: /* Type to represent a port. */ typedef uint16_t in_port_t; struct in_addr其实就是32位IP地址 struct in_addr { unsigned long s_addr; }; BSD网络软件中包含了两个函数,用来在二进制地址格式和点分十进制字符串格式之间相互转换,但是这两个函数仅仅支持IPv4。 in_addr_t inet_addr(const char *cp); char *inet_ntoa(struct in_addr in); 功能相似的两个函数同时支持IPv4和IPv6 const char *inet_ntop(int domain, const void *addr, char *str, socklen_t size); int inet_pton(int domain, const char *str, void *addr); 通常的用法是: int sockfd; struct sockaddr_in my_addr; sockfd = socket(AF_INET, SOCK_STREAM, 0); my_addr.sin_family = AF_INET; /* 主机字节序 */ my_addr.sin_port = htons(MYPORT); /* short, 网络字节序 */ my_addr.sin_addr.s_addr = inet_addr("192.168.0.1"); bzero(&(my_addr.sin_zero), 8); /* zero the rest of the struct */ //memset(&my_addr.sin_zero, 0, 8); bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr));
jianghaibobo
2019/09/11
2.1K0
Unix-Linux编程实践教程-chapter13-udp
数据报是从一个socket发送到另一个socket的短消息.数据报socket是不连接的, 每个消息包含有目的地址.数据报(UDP)socket更加简单,快速,给系统增加的负荷 更小.
零式的天空
2022/03/02
3710
IPv4地址的结构体与网络字节序
sin_family: 每种协议族使用的地址族均不同,IPv4使用4字节地址族,IPv6使用16字节地族。
玖柒的小窝
2021/12/15
7770
UNIX网络编程卷1(第三版)套接字编程简介
  通常也被成为“网际套接字地址结构”,以sockaddr_in命名,定义在<netinet/in.h>头文件中。 
心跳包
2020/08/31
8320
python recvfrom函数详解_UDP sendto和recvfrom使用详解「建议收藏」
在网络编程中,UDP运用非常广泛。很多网络协议是基于UDP来实现的,如SNMP等。大家常常用到的局域网文件传输软件飞鸽传书也是基于UDP实现的。
全栈程序员站长
2022/09/15
2.3K0
UNPv13:#第3章#套接字编程简介
IPv4套接字地址结构 POSIX规范只要求3个字段:sin_family、sin_addr和sin_port。 #include <netinet/in.h> struct sockaddr_in { uint8_t sin_len; sa_family_t sin_family; in_port_t sin_port; struct in_addr sin_addr; ... }; 通用套接
_gongluck
2018/03/09
7890
linux网络编程系列(二)
套接字,也叫socket,是操作系统内核中的一个数据结构,它是网络中的节点进行相互通信的门户。网络通信,说白了就是进程间的通信(同一台机器上不同进程或者不同计算机上的进程间通信)。
cpp加油站
2021/04/16
9400
Linux系统下socket编程socket接口介绍(二)
在上一篇文章里面我们介绍了TCP的三次握手和四次挥手过程的介绍以及网络编程里面的一些api接口函数的介绍——Linux系统下socket编程之socket接口介绍(一)。今天我们继续来介绍网络编程里面的其它接口函数,为实战打下 基础;网络编程专题文章拖的有点久,这两天全部把它写完,不能再拖了。
用户6280468
2022/03/18
3.9K0
Swoole v4.7 版本预览之支持 c-ares
c-ares 是一个异步 DNS 解析库。它适用于需要在不阻塞的情况下执行 DNS 查询或需要并行执行多个 DNS 查询的应用程序。
沈唁
2021/07/23
8110
UNPv1第三章:套接字编程简介
1).IPv4套接字地址结构 IPv4套接字地址结构通常也称为“网际套接字地址结构”,它以sockaddr_in命名,定义在
提莫队长
2019/02/21
1.1K0
推荐阅读
相关推荐
iOS开发 Wifi相关
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档