25 lines
860 B
Python
25 lines
860 B
Python
import paramiko
|
|
import sys
|
|
|
|
sys.stdout.reconfigure(encoding='utf-8')
|
|
|
|
key_path = r"C:\Users\Snarf\.ssh\id_ed25519_snarfnet"
|
|
c = paramiko.SSHClient()
|
|
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
c.connect("140.44.4.71", username="root", key_filename=key_path, timeout=5)
|
|
|
|
for host, ip, path in [
|
|
('pihole1.snarfnet.net', '140.44.4.34', '/admin/'),
|
|
('pihole2.snarfnet.net', '140.44.4.62', '/admin/'),
|
|
('technitium.snarfnet.net', '140.44.4.34', '/'),
|
|
('dns2.snarfnet.net', '140.44.4.62', '/')
|
|
]:
|
|
cmd = f"curl -k -I -H 'Host: {host}' https://{ip}{path}"
|
|
stdin, stdout, stderr = c.exec_command(cmd)
|
|
out = stdout.read().decode('utf-8')
|
|
status_line = out.splitlines()[0] if out else "No output"
|
|
loc = [l for l in out.splitlines() if 'location:' in l.lower()]
|
|
print(f"{host} -> {ip}: {status_line} {loc}")
|
|
|
|
c.close()
|