是否有任何方法可以在Android中获取路由表条目?
请分享信息..
答案 0 :(得分:10)
可以通过ADB获取它。 您可以使用
获取路由表 $ cat /proc/net/route
您也可以在程序中执行这些命令。我找到了讨论此选项的this帖子。但是没有答案。如果你可以详细说明你到底想要什么,我可以编辑我的答案,试着帮助更多。
答案 1 :(得分:5)
打开命令提示符(windows)或终端(mac& linux)
将cd
(更改目录)添加到 android sdk 内的 platform-tools 目录
目录
Windows
adb shell cat /proc/net/route
Mac& Linux
./adb shell cat /proc/net/route
答案 2 :(得分:5)
adb shell "ip route show"
我发现自己更有用,更容易处理解析。
答案 3 :(得分:4)
感谢Paul M的暗示!。
在我的Android 6.0.1(LineageOS)
上/system/bin/ip route show table 0
显示所有表的路径
/system/bin/ip route show table rmnet0
显示当rmnet0是活动接口(移动数据)时使用的路由表。
/system/bin/ip route show table wlan0
显示wlan0处于活动状态时使用的路由表。
在“开发人员选项”中,即使wlan0处于活动状态,也可以保持rmnet0处于活动状态。但是只能同时使用一个接口(和一个路由表)。
当WiFi连接到网络但没有互联网链接时,接口rmnet0将被选为主路由,路由表将从rmnet0表中使用。
当WiFi有互联网链接时,wlan0将用作主界面,“ip route show table wlan0”将用作当前路由表。
通过在路由字符串中添加“table xxx”,可以像往常一样使用ip命令添加或删除路由到/到任何路由表。
例如:
/system/bin/ip route delete table wlan0 default via 192.168.7.1 dev wlan0 proto static
/system/bin/ip route add table wlan0 192.168.7.0/24 dev wlan0 proto kernel scope link src 192.168.7.10 metric 327
每次界面开启/关闭,续租等等都会覆盖所有路线表......
答案 4 :(得分:3)
Android并不只使用一个路由表,因此查看默认表或主表并不会对您有所帮助!
如果您运行命令" ip rule list"然后你会看到有多少个路由表; "查找nnnn"是表。然后你可以用" ip route show table 1006"来查看具体的表格。例如。
我担心我无法告诉您哪个路由表必然是您要查看的路由表,抱歉。
答案 5 :(得分:0)
只需安装 Termux 或任何其他适用于 android 的终端模拟器,即可享受 shell。