【问题标题】:How to fetch the routing table details on iOS如何在 iOS 上获取路由表详细信息
【发布时间】:2015-08-31 21:03:37
【问题描述】:
有没有办法在 iOS 上获取路由表信息?正如post 中所述,我们可以肯定地获得网络接口详细信息。有没有办法我们可以利用它来获取 iOS 上的路由表详细信息(MAC OSX 等价物正在运行命令netstat -nr)?
我看到应用程序“System Guard”正是这样做的。所以必须有一些应用商店认可的方法可以打印路由表。
任何帮助都将不胜感激。
【问题讨论】:
标签:
ios
objective-c
networking
【解决方案1】:
你可以查看我的回购:https://github.com/jianpx/ios-cabin/tree/master/RouteTableManager
说明:
路由表管理器
- 缺陷:目标属性不能显示网络掩码,例如
netstat -r有时会显示10.1.1/32。如果您有实现网络掩码的好主意,请告诉我并向我发送拉取请求。
- 源文件有:RouteTableManager.h/m 和 RouteRecord.h/m
- 导入“RouteTableManager.h”
-
[RouteTableManager getAllRoutes]获取所有路由,每条路由记录的属性都在RouteRecord.h中
-
[RouteTableManager formatRouteTable]可以像unix命令netstat -r一样获取路由表字符串,例如
Destination Gateway Flags Refs Use Mtu Netif Expire
default 10.250.174.1 UGSc 189 0 1500 en0 0
10.62.0.0 10.62.2.35 UGSc 11 0 1500 tun0 0
10.62.2.35 10.62.2.35 UH 2 0 1500 tun0 0
10.63.23.0 10.62.0.1 UGSc 1 0 1500 tun0 0
10.63.58.0 10.62.0.1 UGSc 1 0 1500 tun0 0
10.250.174.135 b8.e8.56.6.be.38 UHLWIi 1 1 16384 lo0 0
218.107.55.89 10.250.174.1 UGSc 1 0 1500 en0 0
224.0.0.0 link #5 UCSm 2 0 1500 en0 111
224.0.0.251 1.0.5e.0.0.fb UHLWIm 1 0 1500 en0 0 255.255.255.255 link #5 UCS 1 0 1500 en0 1343
【解决方案2】:
一种选择是反编译 System Guard 以获取命令。