在Python中,登录远程服务器并查询IP地址通常涉及SSH(Secure Shell)连接和系统命令执行。这里使用paramiko
库来实现这一功能。以下是一个基本的示例:
import paramiko
# 定义远程服务器信息
hostname = 'your_remote_server_ip'
username = 'remote_username'
password = 'remote_password'
# 创建SSH客户端对象
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到远程服务器
try:
ssh.connect(hostname, username=username, password=password)
except paramiko.AuthenticationException:
print("Authentication failed.")
except Exception as e:
print(f"Error connecting to the server: {e}")
else:
# 在远程服务器上执行命令获取IP地址,这里假设是Linux环境
stdin, stdout, stderr = ssh.exec_command('ip addr show')
# 处理输出结果,找到公网或内网IP(这里以IPv4为例)
for line in stdout.readlines():
if 'inet' in line:
ip_address = line.split()[1].split('/')[0]
print(f"Found IP address: {ip_address}")
# 判断这个IP是否存在,例如在一个预设列表中
if ip_address in your_ip_list:
print(f"The IP address {ip_address} exists in your list.")
else:
print(f"The IP address {ip_address} does not exist in your list.")
# 关闭SSH连接
ssh.close()
请将上述代码中的your_remote_server_ip
、remote_username
、remote_password
替换为实际的远程服务器IP地址、用户名和密码。同时,your_ip_list
应当替换为你预先定义好的IP列表。
注意:此代码片段仅用于演示如何通过SSH连接到远程服务器并执行命令获取IP地址,并对IP进行简单判断。根据实际操作系统类型(如Linux发行版、Windows等),可能需要调整获取IP地址的命令。此外,确保远程服务器已开启SSH服务且防火墙规则允许你从当前主机连接。