向路由器发送命令请求并以编程方式获取其回复

时间:2014-03-30 20:24:26

标签: c linux linux-kernel network-programming ipv6

我的项目需要确定网络中连接的路由器是否支持IPv6。在互联网上搜索了几个小时,我发现了以下命令,

root @ linuxrouter:/#test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"

可用于查找Linux内核路由器的IPv6就绪状态。我的疑问是,有没有办法从同一网络中的远程Linux机箱中做到这一点?其中用户可以执行应用程序,其中应用程序将请求发送到路由器(用户输入/硬编码目标设备的IP)并获得"运行内核是IPv6就绪的"从路由器回复应用程序?

我非常感谢您的专家提供的任何参考资料或代码段,因为我是这个领域的新手。非常感谢你:))

1 个答案:

答案 0 :(得分:2)

您需要的信息通过您提到的伪文件报告。因此,您将需要远程shell访问来查询它(或远程文件系统访问排序,但这基本上是相同的事情)。

Windows上的情况大致相同,顺便说一句:虽然Windows有各种奇特的数据报告网络API,但您仍需要提供(本地/域)用户凭据才能访问这些API。

至于如何以编程方式建立远程shell连接,你有多个选项,libssh是一个方便的选项:http://api.libssh.org/master/libssh_tutor_command.html

还有一个SNMP路由,但除非你的机器上有一个现有的工作SNMP设置,否则几乎不值得麻烦(安全的SNMP连接需要全面的身份验证和TLS上下文,所以ssh绝对是一个更简单的方法)。