域名被墙通常指的是由于网络审查或其他原因,某些域名在中国大陆无法正常访问。检测域名是否被墙主要涉及网络请求的响应状态和响应时间。
import socket
def check_dns(domain):
try:
socket.gethostbyname(domain)
return True
except socket.gaierror:
return False
domain = "example.com"
if check_dns(domain):
print(f"{domain} DNS解析正常")
else:
print(f"{domain} DNS解析失败")
import requests
def check_http(domain):
try:
response = requests.get(f"http://{domain}", timeout=5)
if response.status_code == 200:
return True
except requests.RequestException:
pass
return False
domain = "example.com"
if check_http(domain):
print(f"{domain} HTTP访问正常")
else:
print(f"{domain} HTTP访问失败")
import requests
def check_proxy(domain, proxy):
try:
response = requests.get(f"http://{domain}", proxies={"http": proxy, "https": proxy}, timeout=5)
if response.status_code == 200:
return True
except requests.RequestException:
pass
return False
domain = "example.com"
proxy = "http://your_proxy_server:port"
if check_proxy(domain, proxy):
print(f"{domain} 通过代理访问正常")
else:
print(f"{domain} 通过代理访问失败")
通过上述方法,可以有效地检测域名是否被墙,并采取相应的措施解决问题。
领取专属 10元无门槛券
手把手带您无忧上云