ios开发 iphone中获取网卡地址和ip地址

本文提供了iOS开发中获取设备IP地址(包括外网、本地WiFi、本机)和MAC地址的方法,涉及了getifaddrs、sysctl等函数的使用,以及网络接口的遍历和地址转换。
摘要由CSDN通过智能技术生成

// 通过域名获取IP地址

+ (NSString *)IPAdressFromDomain:(NSString *)host

{

  structhostent *hostent = gethostbyname([hostUTF8String]);

  if (!hostent) {

    herror("resolv");

    returnNULL;

  }

  structin_addr **list = (structin_addr **)hostent->h_addr_list;

  NSString *addressString = [NSStringstringWithCString:inet_ntoa(*list[0])encoding:NSUTF8StringEncoding];

  return addressString;

}



// 获取本机IP地址

+ (NSString *)getIPAddress:(BOOL)preferIPv4

{

  /*

   * 此处可以选择是优先返回wifi的还是cell的,或者ipv4的还是ipv6

   */

  NSArray *searchArray = preferIPv4 ?

  @[IOS_WIFI @"/"IP_ADDR_IPv4, IOS_WIFI@"/" IP_ADDR_IPv6,IOS_CELLULAR @"/"IP_ADDR_IPv4, IOS_CELLULAR@"/" IP_ADDR_IPv6] :

  @[IOS_WIFI @"/"IP_ADDR_IPv6, IOS_WIFI@"/" IP_ADDR_IPv4,IOS_CELLULAR @"/"IP_ADDR_IPv6

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值