-2

我正在尝试在 C# VS 中编写一些软件,这些软件将用于通过 SSH 连接到网络设备(思科交换机/路由器)并定期下载它们的配置。我已经尝试过 SharpSSH、SSH.NET。前者已过时且存在漏洞,后者只是垃圾邮件异常。我所做的是通过 Process 类使用 plink 登录设备。使用重定向的 IO,我什至设法打印出配置。不幸的是,它没有完整打印出来。几行之后,控制线停止输出并等待输入

R1#show running-config  
Building configuration...  

Current configuration : 890 bytes  
!  
version 12.4  
service timestamps debug datetime msec  
service timestamps log datetime msec  
no service password-encryption  
!  
hostname R1  
!  
boot-start-marker  
boot-end-marker  
!  
enable secret 5 $1$Or0j$2.HDFSXaC9jh/KGxhyl6I1  
!  
no aaa new-model  
memory-size iomem 5  
ip cef  
!  
!  
!  
!  
no ip domain lookup  
 --More--          

像这样。这似乎是一个控制台问题,因为我没有在设备上等待就将该功能转为输出。在那一刻发送任何东西我就像向设备发送命令一样,所以我实际上不能要求更多的输出(或者至少我还没有找到方法)。这可能是控制台输出问题(询问是否输出更多)或 StreamWriter 已满。我的问题是:是否可以在控制台应用程序中关闭等待?如果没有 - 你会建议我做什么?欢迎任何想法。

克拉夫库

4

2 回答 2

1

当然你可以关闭“--More--”。此命令将帮助您(在路由器和交换机上):

R1#terminal length 0

还有这个(在 Cisco ASA 上)

terminal pager 0
于 2013-10-20T07:35:12.633 回答
0

使用轻量级 TFTP 库并使用它而不是控制台下载?

http://www.codeproject.com/Articles/19314/A-simple-TFTP-client-using-C

如果您设置在控制台版本上,只需处理启动 plink 连接并从进程 i/o 中读取您的配置。

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

于 2013-09-03T06:15:39.533 回答