
+ W' K) ~# N# p! w1 K, j8 Epython的好处就不说了,移植起来太容易了。
! b+ @% a9 {& J. F还是好好说说python怎么telnet到CISCO路由器上并抓取配置清单的脚本吧:' G v% {+ ?; y5 g8 a2 e( j6 W
+ {2 R5 k9 C) G% h* a1 s
4 t+ t1 m+ \' M |5 G: ^1 F
' N5 A5 C) u [' y* D& u! J
import telnetlib
5 l4 _3 N# G8 n, I; Y( @! Qtn = telnetlib.Telnet()
0 M3 D: N+ H6 j
0 P; |5 X5 t& o5 t) d$ ntn.open('192.168.0.1', 23) # telnet 到路由器$ M6 y/ p+ _& J7 S
tn.read_until(b'RT1',2) #等待RT1字符,按道理应该是在等'username:’字符;
* l. V( i$ j$ Y2 w3 ^print('RT1, has displayed') #print一个提示信息,
& A* ~3 q$ |; ]1 A$ |tn.write(b'enable\r\n') #发送enable命令
" `7 A( w$ I, n% c) _tn.write(b'cisco\r\n') #发送enable 密码:cisco
$ q9 ]0 T3 b$ ^: `8 `# jtn.write(b'show run\r\n') #发送show run命令7 C- C2 F% I1 l, r) C3 @
tn.write(b' ') #发送空格,为的是出现more的时候继续显示
9 p' t2 y1 E4 m# kprint("myname:\r\n") #print一个字符,, i }2 q$ e! |$ O2 o: L
abc = tn.read_very_eager() #将所有显示的信息,包括发送的命令进行捕获
8 Z; a1 B* H; N9 F& zprint(abc) #显示捕获到的信息,这个信息是不堪入目的;
* |% @& }5 N, | tprint(abc.decode('utf8')) #更改编码格式进行显示,这回就好看多了;0 R- \7 o! J% C# J1 I
f = open('ttt.txt',mode='w',encoding = 'ascii') #打开文件ttt.txt,准备将捕获的内容写入文件
. K- v, ?# b$ y wf.write(abc.decode('ascii')) #将捕获的信息写入文件ttt.txt,ascii和utf8好像差不不大,这个有待研究
5 U) I$ E" ]' F0 H- u# L* R% xf.close() # 关闭文件
, x9 ~& v& O7 y ?% f' O z |
|