我可以在不使用system()命令的情况下在C中读/写路由表吗?

cat*_*eof 8 c linux networking routes

我有用C编写的代码.我想使用存储在路由表中的C代码信息.可能吗?

Nem*_*emo 9

您还可以运行"strace route add ..."来查看route命令的执行方式.

在我的系统,它采用ioctlSIOCADDRT.一点点搜索会显示一些示例代码.

奇怪的是,我发现的最好的文档来自IBM的AS400手册页.

如果您只想阅读路由表,则可以打开并阅读/proc/net/route.(再次,strace显示这是route命令执行的方式.)十六进制数是机器端形式的32位IP地址.试试cat /proc/net/route.

  • 您的问题的标题是“修改”。 (2认同)

Kei*_*ith 5

您可以打开netlink套接字并发送路由更新消息.有一篇关于如何做到这一点的文章.