通过面向对象编程思想使用paramiko中的invoke_shell,发送命令为ping
时间: 2023-11-28 11:50:11 浏览: 170
好的,首先需要安装paramiko模块。可以使用以下命令进行安装:
```
pip install paramiko
```
然后可以通过以下代码实现发送ping命令:
```python
import paramiko
class SSHConnection:
def __init__(self, host, username, password):
self.host = host
self.username = username
self.password = password
self.client = paramiko.SSHClient()
self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self.client.connect(self.host, username=self.username, password=self.password)
def execute_command(self, command):
stdin, stdout, stderr = self.client.exec_command(command)
return stdout.readlines()
def send_ping(self, ip_address):
channel = self.client.invoke_shell()
channel.send('ping {}\n'.format(ip_address))
while not channel.recv_ready():
pass
output = channel.recv(1024).decode('utf-8')
return output
if __name__ == '__main__':
ssh = SSHConnection('hostname', 'username', 'password')
ping_output = ssh.send_ping('8.8.8.8')
print(ping_output)
```
以上代码创建了一个名为SSHConnection的类,通过初始化方法连接远程主机,并在execute_command方法中执行命令。send_ping方法使用invoke_shell方法发送ping命令,并通过channel.recv_ready()等待命令执行完成并返回输出。
注意:实际使用时应该将用户名和密码存储在安全的位置,并通过其他方式获取,而不是硬编码在代码中。
阅读全文