在Linux上如何使用C查找路由表的默认网关?

我不想发出对Shell的调用或读取文件。有用于添加和删除路由的ioctl(SIOCADDRT,SIOCDELRT),我发现是在获取路由(SIOCGRTCONF)的参考上发现的,但似乎我使用的内核版本不支持SIOCGRTCONF。

最佳答案

您可能需要使用NETLINK_ROUTE套接字,它是PF_NETLINK套接字家族的一部分。查看“ iproute”的“ ip”程序部分的源代码。具体来说,是“ route”子命令。

关于network-programming - Linux上C中的默认网关,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/548105/

10-10 12:34