【问题标题】:Getting information from a cisco / juniper router with java使用 java 从 cisco/juniper 路由器获取信息
【发布时间】:2014-03-08 07:29:28
【问题描述】:

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

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

我看到人们使用实现expect 之类的脚本来知道何时发送用户名和密码。但这是针对 shell 脚本的。我怎样才能在java中做到这一点?我也希望严格保留在 java 中。

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

有什么想法吗?

【问题讨论】:

  • 此时似乎有点宽泛。你能缩小范围吗?
  • 我想让一个 java 程序登录到一个 cisco 路由器,这样我就可以查询路由器的接口状态。
  • 那你为什么不能直接使用 SNMP.. 为什么要登录并检查接口状态??
  • SNMP 没问题,但我只想按需检查接口的状态。例如,当用户从 GUI 触发和事件时。此外,我希望能够提取接口上的 IP 地址等信息以及接口可能出现的任何错误。

标签: java telnet expect information-extraction


【解决方案1】:

你需要使用一些 Java 库来做同样的事情。 http://www.pitman.co.za/projects/jssh/ 是一个很好的 Java SSH 客户端。 http://commons.apache.org/proper/commons-net/ 有很好的 telnet 实现

【讨论】:

    【解决方案2】:

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

    对于 Cisco,找出您设备的 IOS 映像文件名,然后您可以在此处获取 MIB 文件:http://tools.cisco.com/Support/SNMP/do/MIBSupport.do?local=en&step=3。查看 MIB 文件,您将看到通过 SNMP 可用于该设备的内容。

    您应该能够在他们的网站上为瞻博网络做类似的事情。

    现在,我对 Java 了解不多,但我知道有可用的 SNMP 库(如 http://www.snmp4j.org/ )。

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

    【讨论】:

      【解决方案3】:

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

      使用此功能的最简单方法是使用名为expect 的编程语言。此名称描述了您 expect 从端口获取提示然后您响应的语言。发送该消息(您的回复),您 expect 得到另一个回复,您回复,ad completum - 我的术语;)

      请注意,此电缆是 Cisco 专有的,但我确信有可用的引脚。

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

      【讨论】:

      • 我会使用电缆,但我处于与路由器不同的状态。我在俄亥俄州,在伊利诺伊州。
      猜你喜欢
      • 1970-01-01
      • 2022-08-15
      • 2014-08-09
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多