Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

994
Views
Obtener URL de origen en FastAPI

¿Es posible obtener la URL de la que provino una solicitud en FastAPI?

Por ejemplo, si tengo un punto final que se solicita en api.mysite.com/endpoint y se realiza una solicitud a este punto final desde www.othersite.com , ¿hay alguna manera de recuperar la cadena "www.othersite.com"? " en mi función de punto final?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

La premisa de la pregunta, que podría formularse como

un servidor puede identificar la URL desde donde vino una solicitud

está equivocado. Cierto, algunas solicitudes HTTP (especialmente algunas de las solicitudes emitidas por los navegadores) llevan un encabezado Origin y/o un encabezado Referer [sic] . Además, el encabezado Forwarded , si está presente, contiene información sobre dónde se emitió la solicitud. Sin embargo, nada en la especificación HTTP requiere que las solicitudes en general anuncien de dónde provienen.

Por lo tanto, ya sea con FastAPI o alguna otra tecnología de servidor, no existe una forma definitiva de saber de dónde proviene una solicitud.

over 4 years ago · Santiago Trujillo Report

0

Según la documentación de FastAPI y, por lo tanto , la de Starlette :

Imaginemos que desea obtener la dirección IP/host del cliente dentro de su función de operación de ruta.

 @app.get("/items/{item_id}") def read_root(item_id: str, request: Request): client_host = request.client.host return {"client_host": client_host, "item_id": item_id}

Tenga en cuenta que, como lo señalaron otros, si usa nginx, debe agregar encabezados a la solicitud de nginx para manejar esos datos.

Actualizar

Una vez que obtenga la dirección IP del cliente (suponiendo que las solicitudes a su API se manejen en el back-end del sitio web y, por lo tanto, la dirección IP del cliente sería la dirección IP del sitio web y no la navegación del usuario), puede realizar una búsqueda inversa de DNS para obtener el nombre de host del servidor del sitio web (aunque no siempre existe o no tiene un nombre significativo), como se muestra a continuación. Desde allí, puede buscar información sobre el nombre de host o la propia dirección IP en línea. Puede crear una base de datos con cada dirección IP (o mejor nombre de host) que resuelva para referencia futura.

 import socket #address = '2001:4860:4860::8888' # Google's Public DNS IPv6 address address = '216.58.214.14' # a Google's IP address print(socket.gethostbyaddr(address)[0])
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!