ios实现wifi搜索连接_iOS开发中WiFi相关功能

本文介绍了在iOS开发中如何实现WiFi的搜索与连接功能,包括使用SimplePing进行ping测试判断网络连通性,获取WiFi信息如名称、路由器Mac地址,以及获取当前WiFi的网关和本地IP地址的方法。提供了详细的代码示例和注意事项。
摘要由CSDN通过智能技术生成

iOS 开发中难免会遇到很多与网络方面的判断,这里做个汇总,大多可能是与WiFi相关的。

1.Ping域名、Ping某IP

有时候可能会遇到ping 某个域名或者ip通不通,再做下一步操作。这里的ping与传统的做get或者post请求还是有很大区别的。比如我们连接了某个WiFi,测试ping www.baidu.com,如果能ping 通,基本可以断定可以上网了,但是如果我们做了一个get 请求(url 是www.baidu.com),路由器可能重定向这个WiFi内的某网页了,依然没有错误返回,就会误认为可以正常上网。

这里有关于ping命令的详细解释:百度百科Ping

iOS中想要ping域名或者ip,苹果提供了一个官方例子SimplePing

在例子中,有一个苹果已经封装过的类【SimplePing.h】和【SimplePing.m】

使用起来也相当的简单:

首先创建一个Ping对象:SimplePing *pinger = [[SimplePing alloc]initWithHostName:self.hostName];             self.pinger = pinger;pinger.delegate = self;                                     pinger.addressStyle= SimplePingAddressStyleICMPv4;                                    [pinger start];

然后在start成功的代理方法中,发送数据报文:/**                                                                                                                                       start成功,也就是准备工作做完后的回调                                                                      */

-(void)simplePing:(SimplePing*)pingerdidStartWithAddress:(NSData*)address{// 发送测试报文数据

[self.pinger sendPingWithData:nil];}

-(void)simplePing:(SimplePing*)pingerdidFailWithError(NSError*)error{NSLog(@"didFailWithError");

[self.pinger stop];}

其他几个代理方法也非常简单,就简单记录一下:// 发送测试报文成功的回调方法-(void)simplePing:(SimplePing*)pingerdidSendPacket:(NSData*)packetsequenceNumber:(uint16_t)sequenceNumber{NSLog(@"#%u sent", sequenceNumber);}//发送测试报文失败的回调方法-(void)simplePing:(SimplePing*)pingerdidFailToSendPacket:(NSData*)packetsequenceNumber:(uint16_t)sequenceNumbererror:(NSError*)error{NSLog(@"#%u send failed: %@", sequenceNumber, error);}// 接收到ping的地址所返回的数据报文回调方法-(void)simplePing:(SimplePing*)pingerdidReceivePingResponsePacket:(NSData*)packetsequenceNumber:(uint16_t)sequenceN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值