美文网首页iOS
ios无线网络

ios无线网络

作者: IceWall_Rin | 来源:发表于2016-11-17 17:44 被阅读85次

一直在做移动设备网络方面的开发,最近项目需要解决ios设备判断是否打开个人热点。

http://www.cnblogs.com/gaoxiaoniu/p/5482623.html

经过网上搜索,找到一个比较笨的办法,就是通过获取status bar高度是否等于40来判断热点状态。当有其他设备接入我的热点后,ios会在status bar height添加一行蓝底白色的文字提示有人接入,并一直保留在屏幕顶端,此时status bar height == 40。不过这个方法不能判断出在没有其他设备接入时,设备是否启动热点。

昨天,突然想到到获取ios设备ip地址的方法是遍历ios所有(实体/虚拟)网卡,当热点启动的时候,肯定会增加一个新的ip地址。于是通过日志记录了不启动热点和启动热点时所有ipv4地址,果然启动热点后,会增加一个桥接虚拟网卡,名称(ifa_name)为“bridge0”或“bridge100”。

以下为热点启动后,所有ipv4网卡的情况:

lo0        //本地ip, 127.0.0.1

en0        //局域网ip, 192.168.1.23

pdp_ip0  //WWAN地址,即3G ip,

bridge0  //桥接、热点ip,172.20.10.1

通过遍历所有ipv4网卡,查询网卡名称是否包含“bridge”即可判断当前热点是否启动。

// Get All ipv4 interface

+ (NSDictionary *)getIpAddresses {

NSMutableDictionary* addresses = [[NSMutableDictionary alloc] init];

struct ifaddrs *interfaces = NULL;

struct ifaddrs *temp_addr = NULL;

@try {

// retrieve the current interfaces - returns 0 on success

NSInteger success = getifaddrs(&interfaces);

//NSLog(@"%@, success=%d", NSStringFromSelector(_cmd), success);

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) {

// Get NSString from C String

NSString* ifaName = [NSString stringWithUTF8String:temp_addr->ifa_name];

NSString* address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *) temp_addr->ifa_addr)->sin_addr)];

NSString* mask = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *) temp_addr->ifa_netmask)->sin_addr)];

NSString* gateway = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *) temp_addr->ifa_dstaddr)->sin_addr)];

AXNetAddress* netAddress = [[AXNetAddress alloc] init];

netAddress.name = ifaName;

netAddress.address = address;

netAddress.netmask = mask;

netAddress.gateway = gateway;

NSLog(@"netAddress=%@", netAddress);

addresses[ifaName] = netAddress;

}

temp_addr = temp_addr->ifa_next;

}

}

}

@catch (NSException *exception) {

NSLog(@"%@ Exception: %@", DEBUG_FUN, exception);

}

@finally {

// Free memory

freeifaddrs(interfaces);

}

return addresses

相关文章

  • 2018-12-20

    ios 手机设置 1.电脑与手机处于同一局域网,在ios无线网络设置手动代理 2.在burpsuite设置代理 4...

  • ios无线网络

    一直在做移动设备网络方面的开发,最近项目需要解决ios设备判断是否打开个人热点。 http://www.cnblo...

  • 计算机网络原理梳理丨无线与移动网络

    目录 无线网络 移动网络 IEEE802.11 蜂窝网络 移动IP网络 其它典型无线网络介绍 无线网络 无线网络的...

  • 企业无线覆盖方案

    时讯无线是一家从事企业级无线网络产品和无线网络产品研发与应用的科技公司。它也是无线网络行业领先的无线网络解决方案和...

  • 使用kail破解无线网密码

    使用Aircrack-ng破解无线网络 无线网络的加密工具有哪些? 破解WEP加密的无线网络 具体操作如下: 1 ...

  • [CCNA图文笔记]-23-无线网络介绍

    0×1.无线网络介绍a.无线网络分类无线网络根据连接范围分有下面这几种类型:PAN(Personal Area N...

  • 『Kali 无线渗透03』- 无线网络架构

    无线网络架构 无线网络架构可分为Infrastructure与Ad-Hoc 在无线网络中的AP每秒钟约10次通过B...

  • WWDC:无线网络优化实践,带来哪些启发?

    WWDC:无线网络优化实践,带来哪些启发?WWDC:无线网络优化实践,带来哪些启发?

  • 扫描所有无线网络

    扫描所有无线网络 由于无线网络便利,使得无线网络被广泛应用。大学霸IT达人当用户实施无线渗透时,通常需要先扫描周围...

  • 无线传输技术基础

    *无线网络的协议层次、无线网络的分类、重要的无线网络组织 *如何实现无线传播、无线电波的传播特性、波长大于可见光的...

网友评论

    本文标题:ios无线网络

    本文链接:https://www.haomeiwen.com/subject/ujadpttx.html