can I read/write the routing table in C without using system() command?
I have code 开发者_C百科written in C. I want to get using C code information that is stored in routing table. Is it possible?
You can also run "strace route add ..." to see how the route
command does it.
On my system, it uses ioctl
with SIOCADDRT
. A little searching turns up some sample code.
Oddly, the best documentation I have found is from IBM's AS400 man pages.
If you just want to read the routing table, you can open and read /proc/net/route
. (Again, strace
shows that this is how the route
command does it.) The hex numbers are 32-bit IP addresses in machine-endian form. Try cat /proc/net/route
.
You can open a netlink socket and send route update messages. There is an article about how to do this.
If you want to query the routing table only, try to read the file /proc/net/route
. It works in my system.
精彩评论