
9 \6 C. N0 [ Z' | P5 o! Epython的好处就不说了,移植起来太容易了。 / f2 M4 C+ M* N0 K! t
还是好好说说python怎么telnet到CISCO路由器上并抓取配置清单的脚本吧:6 g* P: f6 z& v1 t7 a
. @& q1 T2 h( D+ G0 A
3 X9 v7 e* m) H1 y' p) {
5 z; @: [( ~+ F& m9 D5 P$ E. F8 kimport telnetlib; E7 f' e& V7 {8 k, U- {- F
tn = telnetlib.Telnet()& b- S( G$ ?" u! y f3 Y! k2 i5 B) C
9 d- d7 P6 y z; I; q% @# C! z
tn.open('192.168.0.1', 23) # telnet 到路由器, x4 i$ @) j" B. X
tn.read_until(b'RT1',2) #等待RT1字符,按道理应该是在等'username:’字符; ]4 Y8 @" Z+ y$ k& L
print('RT1, has displayed') #print一个提示信息,
) u% ]8 l& S1 m; Itn.write(b'enable\r\n') #发送enable命令
: L# l- |$ Y& s* u9 otn.write(b'cisco\r\n') #发送enable 密码:cisco
5 |! q. y) H# g% e( }tn.write(b'show run\r\n') #发送show run命令
% q, {) M1 C. q2 R4 b2 M& n1 ltn.write(b' ') #发送空格,为的是出现more的时候继续显示
4 N4 T% U1 s# d+ ]8 qprint("myname:\r\n") #print一个字符,
6 p" u2 \* x( O: m) ^4 w' ^abc = tn.read_very_eager() #将所有显示的信息,包括发送的命令进行捕获
, l( X* c5 M m4 t9 |print(abc) #显示捕获到的信息,这个信息是不堪入目的;% s$ z6 b/ f \) z
print(abc.decode('utf8')) #更改编码格式进行显示,这回就好看多了;/ V7 I: V# c5 f" k4 Q4 v6 i# R' Z0 N
f = open('ttt.txt',mode='w',encoding = 'ascii') #打开文件ttt.txt,准备将捕获的内容写入文件
( f, w) x& [1 j+ _3 S& if.write(abc.decode('ascii')) #将捕获的信息写入文件ttt.txt,ascii和utf8好像差不不大,这个有待研究0 i4 ^1 X0 @9 k2 Q- w
f.close() # 关闭文件
: L9 M, M9 \0 j& x0 V* h8 @; R* W* K |
|