我可以在Android中获取路由表条目吗?

prg*_*prg 10 routing android

有没有在Android中获取路由表条目的方法?

请分享信息..

sea*_*alz 11

可以通过亚行获得它.您可以使用以获取路由表

$ cat /proc/net/route

您也可以在程序中执行这些命令.我发现这篇文章讨论了这个选项.但是没有答案.如果你可以详细说明你到底想要什么,我可以编辑我的答案,试着帮助更多.

可能很复杂但也许有用的链接 :)


小智 6

感谢Paul M的提示!

在我的Android 6.0.1(LineageOS)上

/system/bin/ip route show table 0
Run Code Online (Sandbox Code Playgroud)

显示所有表格的路线

/system/bin/ip route show table rmnet0
Run Code Online (Sandbox Code Playgroud)

显示当rmnet0是活动接口(移动数据)时使用的路由表。

/system/bin/ip route show table wlan0
Run Code Online (Sandbox Code Playgroud)

显示wlan0激活时使用的路由表。

在“开发人员选项”中,即使wlan0处于活动状态,也可以保持rmnet0处于活动状态。但是只能同时使用一个接口(和一个路由表)。

当WiFi连接到网络但没有Internet链接时,将选择rmnet0接口作为主接口,并使用rmnet0表中的路由表。

当WiFi具有Internet链接时,wlan0将用作主界面,“ ip route show table wlan0”将用作当前路由表。

您可以像往常一样使用ip命令通过在路由字符串中添加“表xxx”来添加路由表中的路由或从路由表中删除路由。

例如:

/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
Run Code Online (Sandbox Code Playgroud)

每当接口打开/关闭,续订租约等时,所有路由表都会被覆盖...


Dur*_*n.H 5

使用Android设备桥(ADB)

  • 打开命令提示符(windows)或终端(mac和linux)

  • 做一个cd(改变目录)平台工具目录是内部的Android SDK 目录

  • 视窗

    adb shell cat /proc/net/route

    Mac和Linux

    ./adb shell cat /proc/net/route


小智 5

adb shell "ip route show"
Run Code Online (Sandbox Code Playgroud)

我发现自己更有用,更容易处理解析.