feat: 更新IP地址记录逻辑以支持代理头

- 修改结果处理逻辑以获取真实IP地址,考虑代理头的影响
- 更新RawResponse模型中的ip_address字段以保存用户的真实IP
This commit is contained in:
Miu Li 2025-06-16 05:33:40 +08:00
parent ff44ce6264
commit e08909eacd

6
app.py
View File

@ -84,10 +84,14 @@ async def result(request: Request, scale_id: str, db: Session = Depends(get_db))
scale = scales.get(scale_id) scale = scales.get(scale_id)
if scale: if scale:
# Save response to database # Save response to database
# Get real IP address considering proxy headers
ip = request.headers.get("X-Forwarded-For", "").split(",")[0].strip() or \
request.headers.get("X-Real-IP", "") or \
request.client.host
db_response = RawResponse( db_response = RawResponse(
scale_id=scale_id, scale_id=scale_id,
user_agent=request.headers.get("user-agent", "Unknown"), user_agent=request.headers.get("user-agent", "Unknown"),
ip_address=request.client.host, ip_address=ip,
response=dict(form_data) response=dict(form_data)
) )
db.add(db_response) db.add(db_response)