import socket
import requests
import urllib3.util.connection as urllib3_connection
def get_json(url, family=None):
original_family = urllib3_connection.allowed_gai_family
session = requests.Session()
session.trust_env = False
if family is not None:
urllib3_connection.allowed_gai_family = lambda: family
try:
response = session.get(url, timeout=10)
response.raise_for_status()
return response.json()
finally:
session.close()
urllib3_connection.allowed_gai_family = original_family
def check_network():
"""검사IPv4/IPv6지원"""
# IPv4 검사
print("? IPv4진단:")
try:
data = get_json('https://v4.17nas.com?format=json', socket.AF_INET)
if 'error' in data:
print(f"❌ {data['error']['en']}")
else:
print(f"✅ IPv4 주소: {data['ip']}")
print(f" 국가: {data['country']['en']} ({data['country']['code']})")
print(f" 위치: {data['location']['en']}")
except Exception as e:
print(f"⚠️ 진단실패: {e}")
# IPv6 검사
print("\n? IPv6진단:")
try:
data = get_json('https://v6.17nas.com?format=json', socket.AF_INET6)
if 'error' in data:
print(f"❌ {data['error']['en']}")
else:
print(f"✅ IPv6 주소: {data['ip']}")
print(f" 국가: {data['country']['en']}")
except Exception as e:
print(f"⚠️ 진단실패: {e}")
# 접속 우선순위
print("\n⚡ 접속 우선순위:")
try:
data = get_json('https://ip.17nas.com?format=json')
print(f"프로토콜: {data['protocol']}")
print(f"우선순위: {data['priority']['en']}")
except Exception as e:
print(f"⚠️ 진단실패: {e}")
if __name__ == '__main__':
check_network()