详解python连接telnet和ssh的两种方式

 更新时间:2021年10月29日 16:23:31   作者:dudu_mer  
本文主要介绍了python连接telnet和ssh的两种方式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Telnet 连接方式

#!/usr/bin/env python
# coding=utf-8
 
import time
import telnetlib
import logging
 
__author__ = 'Evan'
 
save_log_path = 'result.txt'
file_mode = 'a+'
format_info = '%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'
 
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
 
# 添加记录 记录器功能
fh = logging.FileHandler(save_log_path, mode=file_mode)
fh.setLevel(logging.DEBUG)
fh.setFormatter(logging.Formatter(format_info))
logger.addHandler(fh)
# 增加显示 记录器功能
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
ch.setFormatter(logging.Formatter(format_info))
logger.addHandler(ch)
 
 
def telnet_handle(host='', port=''):
    handle = telnetlib.Telnet(host, port, timeout=10)
    handle.set_debuglevel(2)  # Display connect info (send command & received info)
    logger.debug('Connect host: {} port: {} successful'.format(host, port))
 
    try:
        #获取登录提示‘login:' 后输入密码。
        handle.read_until('login:', timeout=5)
 
        #发送命令 登录,用户名:admin 密码:admin
        handle.write('admin\n')  #用户名
        #如果有输入密码的提示符可以打开这一条,并修正确的密码提示符
        #handle.read_until('输入密码提示符', timeout=5)
        time.sleep(1)
        handle.write('admin\n')  #密码
        time.sleep(1)
        handle.write('en\n')  #执行指令
        time.sleep(1)
        handle.write('sys\n')  #执行指令
        time.sleep(1)
        handle.write('display running-config\n')  #执行指令
        time.sleep(1)
        handle.write('show stack\n')  #执行指令
        time.sleep(1)
 
        #读取所有信息
        result = handle.read_very_eager()  
        logger.info('Received info: {}'.format(result))
    finally:
        handle.close()
 
if __name__ == '__main__':
    telnet_handle(host='192.168.10.1', port='23')

ssh连接方式

#!/usr/bin/env python
# coding=utf-8
 
import paramiko,sys,time
 
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接SSH服务器
client.connect("192.168.10.1",22,"admin","admin")
#执行命令的方式一   连接linux发送固定指令
stdin,stdout,stderr = client.exec_command("whoami")
time.sleep(2)
print(stdout.read())
stdin,stdout,stderr = client.exec_command("cat /root/lzhi/c_call_python.txt")
print(stdout.read())
stdin,stdout,stderr = client.exec_command("ls")
print(stdout.read())
stdin,stdout,stderr = client.exec_command("ls -la")
print(stdout.read())
 
#执行命令的方式二  获取命令行参数,并且删除参数1.保留需要执行的命令
buf = sys.argv
del buf[0]
str1 = ' '.join(buf)
print(str1)
#执行命令行参数给出的命令
stdin,stdout,stderr = client.exec_command(str1)
#time.sleep(1)
print(stdout.read())

到此这篇关于详解python连接telnet和ssh的两种方式的文章就介绍到这了,更多相关python连接telnet和ssh内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python判断一组数呈上升还是下降趋势的操作方法

    python判断一组数呈上升还是下降趋势的操作方法

    要判断一组数(数列)是呈上升趋势、下降趋势还是无明显趋势,我们可以比较数列中相邻元素的差值,这篇文章主要介绍了python 如何判断一组数呈上升还是下降趋势,需要的朋友可以参考下
    2024-06-06
  • Python+MySQL随机试卷及答案生成程序的示例代码

    Python+MySQL随机试卷及答案生成程序的示例代码

    这篇文章主要介绍了Python+MySQL随机试卷及答案生成程序的示例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • 基于python检查SSL证书到期情况代码实例

    基于python检查SSL证书到期情况代码实例

    这篇文章主要介绍了基于python检查SSL证书到期情况代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Web自动化之Selenium常用操作方法大全

    Web自动化之Selenium常用操作方法大全

    Selenium是一种自动化测试工具,可以用于测试Web应用程序,它提供了一组用于自动化Web浏览器进行测试的API,下面这篇文章主要给大家介绍了关于Web自动化之Selenium常用操作方法的相关资料,需要的朋友可以参考下
    2023-06-06
  • Python如何实现大型数组运算(使用NumPy)

    Python如何实现大型数组运算(使用NumPy)

    这篇文章主要介绍了Python如何实现大型数组运算,文中讲解非常细致,帮助大家更好的了解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • Python中条件语句、循环语句和pass语句的使用示例

    Python中条件语句、循环语句和pass语句的使用示例

    Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块,下面这篇文章主要给大家介绍了关于Python中条件语句、循环语句和pass语句使用的相关资料,需要的朋友可以参考下
    2022-06-06
  • python简单分割文件的方法

    python简单分割文件的方法

    这篇文章主要介绍了python简单分割文件的方法,涉及Python针对文件的读取与写入技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • python目标检测yolo2详解及预测代码复现

    python目标检测yolo2详解及预测代码复现

    这篇文章主要为大家介绍了python目标检测yolo2详解及其预测代码复现,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Django模板标签{% for %}循环,获取制定条数据实例

    Django模板标签{% for %}循环,获取制定条数据实例

    这篇文章主要介绍了Django模板标签{% for %}循环,获取制定条数据实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 基于Python制作一个文件解压缩工具

    基于Python制作一个文件解压缩工具

    经常由于各种压缩格式的不一样用到文件的解压缩时就需要下载不同的解压缩工具去处理不同的文件。本文将用Python制作一个解压缩小工具,以后再也不用下载各种格式的解压缩软件了
    2022-05-05

最新评论