Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I get the routing table entry in Android?

Is there any method for getting the routing table entry in Android?

Please share the information..

like image 830
prg Avatar asked Aug 04 '11 11:08

prg


People also ask

WHAT IS routing table entry?

Routing table entries can originate from the following sources: Directly connected networks (the destination network is the IP address that you assign to an interface in Route mode) Dynamic routing protocols, such as OSPF, BGP, or RIP. Routes that are imported from other routers or virtual routers.

Which device uses routing table?

All IP-enabled devices, including routers and switches, use routing tables. A routing table contains the information necessary to forward a packet along the best path toward its destination.


2 Answers

It is possible to get it through the ADB. You can get the routing table with

$ cat /proc/net/route

You can also execute these commands from within your program. I found this post that discusses this option. There is no answer however. If you could elaborate on what exactly you want in the end I can edit my answer to try and help out more.

Possibly complicated but maybe useful link :)

like image 94
sealz Avatar answered Sep 21 '22 20:09

sealz


Thanks to Paul M for the hint!.

On my Android 6.0.1 (LineageOS)

/system/bin/ip route show table 0

shows routes of all tables

/system/bin/ip route show table rmnet0

shows route table which used when rmnet0 is active interface (mobile data).

/system/bin/ip route show table wlan0

shows route table which used when wlan0 is active.

in "Developers options" it is possible to keep rmnet0 active, even while wlan0 is active. But only one interface will be used at the same time (and one route table).

When WiFi connected to the network, but has no internet link, interface rmnet0 will be selected as main and route table will be used from rmnet0 table.

When WiFi has internet link, wlan0 will be used as main interface and "ip route show table wlan0" as current route table.

you can add or delete route from/to any route table as usual with ip command by adding "table xxx" to route string.

For example:

/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

All route tables will be overwritten every time interface goes on/off, lease renewed, etc...

like image 26
Culrurebt Avatar answered Sep 23 '22 20:09

Culrurebt