使用java从cisco/juniper路由器获取信息

使用java从cisco/juniper路由器获取信息,java,telnet,expect,information-extraction,Java,Telnet,Expect,Information Extraction,我可以使用什么方法登录Cisco或Juniper路由器?我知道我可以使用telnet连接到路由器本身,但我不知道API或任何允许我以非交互方式登录的东西。那我该怎么做呢 有没有我可以使用的库来实现这一点 我见过有人使用脚本来实现诸如expect知道何时发送用户名和密码之类的功能。但这是用于shell脚本的。我如何在java中做到这一点?我也希望严格使用java 这样做的目的是允许java程序登录到路由器,这样我就可以查询路由器的接口状态并在路由器上执行命令 有什么想法吗?你需要使用一些Java库

我可以使用什么方法登录Cisco或Juniper路由器?我知道我可以使用telnet连接到路由器本身,但我不知道API或任何允许我以非交互方式登录的东西。那我该怎么做呢

有没有我可以使用的库来实现这一点

我见过有人使用脚本来实现诸如expect知道何时发送用户名和密码之类的功能。但这是用于shell脚本的。我如何在java中做到这一点?我也希望严格使用java

这样做的目的是允许java程序登录到路由器,这样我就可以查询路由器的接口状态并在路由器上执行命令


有什么想法吗?

你需要使用一些Java库来做同样的事情。是一个很好的JavaSSH客户端。具有良好的telnet实现

至于提取信息,您应该能够使用SNMP查询路由器。几乎所有东西都可以通过SNMP获得。现在,就命令执行而言,有SNMP set命令用于将信息写入路由器,但您需要更仔细地研究,因为我怀疑完整的命令集是否可以替换为SNMP set命令

对于Cisco,请找出设备的IOS映像文件名,然后可以在此处获取MIB文件:。查看MIB文件,您将看到该设备通过SNMP可用的内容

您应该能够在他们的站点上为Juniper执行类似的操作

现在,我对Java了解不多,但我知道有一些SNMP库可以用于Java


这样,您就不必担心登录路由器或任何交互内容。

注意,对于Cisco,通常使用PC上的串行端口直接连接到路由器上的服务端口。此连接使用名为IOS的编程协议

利用这一点的最简单方法是使用名为expect的编程语言。此名称描述了您希望从端口获得提示然后响应的语言。把这个信息发送给你的回应,你期望得到另一个回应,你回应,完全——我的术语

请注意,这是思科专有的电缆,我相信有引脚虽然可用


最后,可以通过串口库在java上模拟该程序。

在这一点上似乎有点宽泛。你能缩小范围吗?我想让一个java程序登录到cisco路由器,这样我就可以查询路由器的接口状态。为什么你不能直接登录SNMP。。为什么要登录并检查接口的状态??SNMP可以,但我只想按需检查接口的状态。例如,当用户从GUI触发事件时。此外,我希望能够提取信息,如IP地址的接口和任何错误的接口可能已经采取。我会使用电缆,但我在另一个状态比路由器。我在俄亥俄州,它在伊利诺伊州。