This commit is contained in:
huangzhenpc
2025-07-18 09:51:18 +08:00
parent d3a475c902
commit 1d4f6f8c33
6 changed files with 398 additions and 9 deletions

View File

@@ -62,6 +62,53 @@ class WebTrafficBotProtocol:
logger.error(f"配置文件格式错误: {e}")
raise
def get_current_ip(self):
"""获取当前IP地址"""
ip_services = [
'https://httpbin.org/ip',
'https://api.ipify.org?format=json',
'https://ipinfo.io/json',
'https://ifconfig.me/ip'
]
for service in ip_services:
try:
logger.info(f"正在获取IP地址: {service}")
response = self.session.get(service, timeout=10)
if response.status_code == 200:
if 'json' in service or 'httpbin' in service or 'ipinfo' in service:
try:
data = response.json()
if 'origin' in data: # httpbin.org
ip = data['origin']
elif 'ip' in data: # ipify.org 或 ipinfo.io
ip = data['ip']
else:
ip = str(data)
except:
ip = response.text.strip()
else:
ip = response.text.strip()
logger.info(f"✅ 当前IP地址: {ip}")
# 如果配置了代理,显示代理信息
proxy_config = self.config.get('proxy')
if proxy_config:
logger.info(f"🌐 代理服务器: {proxy_config['host']}:{proxy_config['port']}")
else:
logger.info("🌐 未使用代理使用本地IP")
return ip
except Exception as e:
logger.warning(f"{service} 获取IP失败: {e}")
continue
logger.error("❌ 无法获取当前IP地址")
return None
def setup_session(self):
"""设置请求会话"""
self.session = requests.Session()
@@ -93,6 +140,11 @@ class WebTrafficBotProtocol:
})
logger.info(f"使用用户代理: {user_agent}")
# 获取并显示当前IP
current_ip = self.get_current_ip()
if current_ip:
print(f"🌍 当前IP地址: {current_ip}")
def simulate_github_visit(self):
"""模拟从GitHub访问"""