dane w headerach i inne funkcje
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
from fastapi import FastAPI, Request, Response
|
from fastapi import FastAPI, Request, Response
|
||||||
from fastapi.responses import PlainTextResponse
|
from fastapi.responses import JSONResponse, PlainTextResponse
|
||||||
from starlette.middleware.base import BaseHTTPMiddleware
|
from starlette.middleware.base import BaseHTTPMiddleware
|
||||||
from .deps import get_geo
|
from .deps import get_geo
|
||||||
from .api import get_client_ip, router
|
from .api import get_client_ip, router
|
||||||
@@ -38,14 +38,18 @@ async def favicon():
|
|||||||
return Response(status_code=204)
|
return Response(status_code=204)
|
||||||
|
|
||||||
|
|
||||||
@app.get("/")
|
@app.api_route("/", methods=["GET", "HEAD"])
|
||||||
async def root(request: Request):
|
async def root(request: Request):
|
||||||
ua = request.headers.get("user-agent", "").lower()
|
ua = request.headers.get("user-agent", "").lower()
|
||||||
ip = get_client_ip(request).strip()
|
ip = get_client_ip(request).strip()
|
||||||
|
|
||||||
if any(x in ua for x in ["mozilla", "chrome", "safari", "edge", "firefox"]):
|
if any(x in ua for x in ["mozilla", "chrome", "safari", "edge", "firefox"]):
|
||||||
|
if request.method == "HEAD":
|
||||||
|
return Response(status_code=404)
|
||||||
return JSONResponse({"detail": "Not Found"}, status_code=404)
|
return JSONResponse({"detail": "Not Found"}, status_code=404)
|
||||||
|
|
||||||
|
if request.method == "HEAD":
|
||||||
|
return Response(status_code=200)
|
||||||
return PlainTextResponse(ip + "\n")
|
return PlainTextResponse(ip + "\n")
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user