iOS 网络诊断 SDK
阅读中文文档
简介
通过集成 iOS 网络诊断 SDK
,您可以轻松地在 iPhone 上进行 ping/traceroute/移动公网信息/端口扫描。
这是使用此 SDK 开发的网络诊断应用的截图
- NetPinger 源代码
- 欢迎星标 & 分叉
环境
- iOS >= 9.0
- Xcode >= 7.0
- 设置
启用 Bitcode
为NO
安装和使用
Pod 依赖
将以下依赖项添加到您的项目的 Podfile
pod 'PhoneNetSDK'
快速开始
将 SDK 头文件导入到项目中
#import <PhoneNetSDK/PhoneNetSDK.h>
此外,您需要将 -lc++
,-ObjC
,$(inherited)
添加到项目的 构建设置
->其他链接标志
。如下所示
ping
[[PhoneNetManager shareInstance] netStartPing:@"www.baidu.com" packetCount:10 pingResultHandler:^(NSString * _Nullable pingres) {
// your processing logic
}];
TCP ping
_tcpPing = [PNTcpPing start:hostDomain port:portNum.integerValue count:3 complete:^(NSMutableString *pingres) {
// your processing logic
}];
UDP traceroute
命令行上的默认 traceroute 命令发送 UDP 数据包(称为 udp traceroute)
_udpTraceroute = [PNUdpTraceroute start:ip complete:^(NSMutableString *res) {
// your processinig logic
}];
ICMP traceroute
在 Mac 的终端中,输入 traceroute -I baidu.com
使用 ICMP 协议进行 traceroute。此功能由 SDK 提供
[[PhoneNetManager shareInstance] netStartTraceroute:@"www.baidu.com" tracerouteResultHandler:^(NSString * _Nullable tracertRes, NSString * _Nullable destIp) {
// your processing logic
}];
nslookup
[[PhoneNetManager shareInstance] netLookupDomain:@"www.google.com" completeHandler:^(NSMutableArray<DomainLookUpRes *> * _Nullable lookupRes, PNError * _Nullable sdkError) {
// your processing logic
}];
端口扫描
[[PhoneNetManager shareInstance] netPortScan:@"www.baidu.com" beginPort:8000 endPort:9000 completeHandler:^(NSString * _Nullable port, BOOL isOpen, PNError * _Nullable sdkError) {
// your processing logic
}];
局域网扫描
如果您想执行局域网活动IP扫描功能,可以使用SDK快速监控每个活动IP,SDK将返回扫描进度。
具体步骤如下
- 创建一个对象并设置代理
PNetMLanScannerDelegate
- 启动扫描并通过其代理方法处理活动IP
- 监控扫描进度(可选)
PNetMLanScanner *lanScanner = [PNetMLanScanner shareInstance];
lanScanner.delegate = self;
[lanScanner scan];
其他功能
- 设置SDK日志级别
- 获取设备公网IP信息
NetPinger示例
iOS平台网络诊断APP(使用SDK),支持ping和域名ping,路由追踪(UDP,ICMP协议),支持TCP ping,端口扫描,nslookup等功能。
只需将SDK安装到Podfile
文件所在的目录即可成功运行。
macdeiMac:NetPinger ethan$ pod install
Analyzing dependencies
Downloading dependencies
Installing PhoneNetSDK (1.0.7)
Generating Pods project
Integrating client project
[!] Please close any current Xcode sessions and use `NetPinger.xcworkspace` for this project from now on.
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.
项目来源
在开发过程中,您经常会遇到界面问题(如DNS解析错误等),因此您需要检测移动终端与服务器网络的连接状态,因此您需要在手机上中断ping
命令,但是市场上的免费网络检测工具大多数都有弹窗广告影响用户体验(例如:iNetTools),因此有必要开发一个网络监测的应用。
实施方法
所有功能都是使用SDK提供的功能实现的。页面和图标主要是模仿MAC上的《网络工具》,希望为您的应用程序提供有价值的参考。
联系我们
- 如果您有任何问题或需要任何功能,请提交问题
- 如果您想要贡献,请提交拉取请求
- 欢迎
star
和fork