首先安装模块:pip install paramiko
参考官方文档用法:http://docs.paramiko.org/en/2.0/api/client.html
获取linux服务器的ip,代码如下:
import paramiko import re class GetLinuxIp(): ‘‘‘获取linux服务器ip‘‘‘ def __init__(self, hostname, port, username, password, cmds): ‘‘‘ :param hostname: linux主机的ip :param port: linux主机的端口 :param username: linux主机登录用户名 :param password: linux主机登录密码 :param cmds: 需要执行的linux命令 ‘‘‘ self.ip = hostname self.port = port self.user = username self.password = password self.cmds = cmds try: self.client = paramiko.SSHClient() # 实例化客户端 # 保存服务器的主机名和密钥信息 self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务端,进行身份验证 self.client.connect(self.ip, self.port, self.user, self.password, timeout=10) print("连接成功...") except Exception as e: # raise e print("连接失败,错误是{}".format(e)) raise e def excute_command(self): ‘‘‘执行命令‘‘‘ # todo stdin是标准输入文件,stdout是标准输出文件,stderr标准出错文件,应用在输出的重新定位上。 self.stdin, self.stdout, self.stderr = self.client.exec_command(self.cmds) def get_result(self): ‘‘‘获取结果‘‘‘ result = self.stdout.read().decode() pattern = re.compile(r‘((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}‘) self.ip = pattern.search(result).group() print("获取到linux服务器的ip是:{}".format(self.ip)) def __del__(self): ‘‘‘关闭连接‘‘‘ self.client.close() print("连接关闭...") if __name__ == ‘__main__‘: linux = GetLinuxIp("121.196.120.113", 22, "root", "123_Xiaohaikun", "ifconfig") linux.excute_command() linux.get_result()
运行结果如图:
原文:https://www.cnblogs.com/xiamaojjie/p/13385223.html