我的项目需要确定网络中连接的路由器是否支持IPv6。在互联网上搜索了几个小时,我发现了以下命令,
root @ linuxrouter:/#test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"
可用于查找Linux内核路由器的IPv6就绪状态。我的疑问是,有没有办法从同一网络中的远程Linux机箱中做到这一点?其中用户可以执行应用程序,其中应用程序将请求发送到路由器(用户输入/硬编码目标设备的IP)并获得"运行内核是IPv6就绪的"从路由器回复应用程序?
我非常感谢您的专家提供的任何参考资料或代码段,因为我是这个领域的新手。非常感谢你:))
答案 0 :(得分:2)
您需要的信息通过您提到的伪文件报告。因此,您将需要远程shell访问来查询它(或远程文件系统访问排序,但这基本上是相同的事情)。
Windows上的情况大致相同,顺便说一句:虽然Windows有各种奇特的数据报告网络API,但您仍需要提供(本地/域)用户凭据才能访问这些API。
至于如何以编程方式建立远程shell连接,你有多个选项,libssh是一个方便的选项:http://api.libssh.org/master/libssh_tutor_command.html
还有一个SNMP路由,但除非你的机器上有一个现有的工作SNMP设置,否则几乎不值得麻烦(安全的SNMP连接需要全面的身份验证和TLS上下文,所以ssh绝对是一个更简单的方法)。