Python 通过telnet 配置思科

发布时间:2019-09-10 09:20:15编辑:auto阅读(1941)

    !!使用了 telnetlib 库
    1 拓扑
    Python 通过telnet 配置思科网络设备
     
    未运行脚本的时候,R4、R5是没有到1.1.1.1和2.2.2.2的路由的:
    Python 通过telnet 配置思科网络设备
    Python 通过telnet 配置思科网络设备

     
    配置文档放在跟python脚本同一个目录下:
    Python 通过telnet 配置思科网络设备
     
    运行python脚本之后:
    Python 通过telnet 配置思科网络设备
    Python 通过telnet 配置思科网络设备
    Python 通过telnet 配置思科网络设备
    成功!

     

    #conf.py 文件
    import time
    from telnetlib import Telnet
    
    def cfg(addr,user,pwd,secret,conf):
            tn = Telnet(addr)
            tn.write(user+'\n')
            tn.write(pwd+'\n')
            tn.write('enable\n')
            tn.write(secret+'\n')
            tn.write('terminal length 0\n')
            time.sleep(1)
            tn.write('conf t\n')
            time.sleep(1)
            confp = open(conf,'r')
            for cmd in confp:
              tn.write(cmd)    #应为读一行的时候已经有换行符了,所以这里就不添加+'\n'了
              print(cmd)       #用于查看读取的命令
              time.sleep(1)    #建议每条命令都休眠一下,不然可能配置不了
            confp.close()
    
    if __name__ == "__main__":
            fp = open('./ip.txt','r')    #如果有多台主机要配置同样的命令的话,可以将主机IP都放在一个文档中
            for ip in fp:
              print("configuring "+ip.strip())
              conf = cfg(ip.strip(),'cisco','cisco','cisco','./conf.txt')
              print(ip.strip()+' was finished!')
            print('done!')
            fp.close()
    

     
    #ip.txt //按需添加
    172.16.1.4
    172.16.2.5

     
    #conf.txt //按需添加
    ip route 1.1.1.1 255.255.255.255 f0/0
    ip route 2.2.2.2 255.255.255.255 f0/0
    do write

关键字