HMP / agents /tools /diagnose.py
GitHub Action
Sync from GitHub with Git LFS
2c3dd0c
# agents/tools/diagnose.py
import socket
import requests
def get_internal_ips():
ips = set()
hostname = socket.gethostname()
try:
ip = socket.gethostbyname(hostname)
ips.add(ip)
except:
pass
try:
for info in socket.getaddrinfo(hostname, None):
addr = info[4][0]
if ':' not in addr: # фильтрация IPv6 для простоты
ips.add(addr)
except:
pass
return list(ips)
def get_external_ip():
try:
ip4 = requests.get("https://api.ipify.org").text
except:
ip4 = None
try:
ip6 = requests.get("https://api64.ipify.org").text
except:
ip6 = None
return ip4, ip6
def check_port_open(port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
try:
result = sock.connect_ex(("0.0.0.0", port))
return result == 0
finally:
sock.close()
def run_diagnose(port=22555):
print("🔍 Диагностика HMP-агента\n")
print("📡 Внутренние IP-адреса:")
for ip in get_internal_ips():
print(f" - {ip}")
ip4, ip6 = get_external_ip()
print("\n🌍 Внешние IP:")
print(f" - IPv4: {ip4 or '❌'}")
print(f" - IPv6: {ip6 or '❌'}")
print(f"\n🔌 Проверка порта DHT ({port}): {'🟢 открыт' if check_port_open(port) else '🔴 закрыт'}")
if __name__ == "__main__":
run_diagnose()