Encontrar el nombre de dominio de un sitio que se hotlinking en el motor de aplicación de Google usando web2py

StackOverflow https://stackoverflow.com/questions/1247593

Pregunta

Supongamos que tenemos una imagen en el Google App Engine y sitios son Hotlinking ella. ¿Cómo puedo encontrar los nombres de dominio de los sitios?

Lo primero que pensé fue:

  

request.client

y luego hacer una búsqueda inversa, pero que no es posible en GAE y llevaría mucho tiempo. Estoy bastante seguro de que hay una propiedad que me permite obtener la URL del sitio que está solicitando el archivo (En algún lugar en la solicitud?). GAE tiene un href="http://code.google.com/appengine/docs/python/tools/webapp/requestclass.html" rel="nofollow clase Solicitud pero no pude hacer que funcione dentro de web2py.

¿Alguna idea?

¿Fue útil?

Solución

Usted puede conseguir fácilmente la de referencia a partir de los encabezados de la solicitud. Esta URL de referencia puede ser falsa, pero la mayoría de la gente no falsificar y que ya se ha resuelto.

No hay forma automática para resolver el DNS aparte de resolver manualmente. Como has dicho, una resolución de DNS lleva tiempo extra y que no tiene sentido para Web2Py o cualquier otro marco para hacerlo.

Otros consejos

Si usted está buscando para averiguar los nombres de dominio (no bloquear las solicitudes mediante la ejecución de un script cuando se solicita la URL de la imagen), entonces estarán en los registros de solicitudes. En la cosita de administración van a "Registros", seleccionar "Sólo las demandas" de la lista desplegable. Si expande "Opciones" puede filtrar el nombre del archivo correspondiente.

A continuación, expanda cada entrada de la solicitud de registro, y el árbitro es o bien un guión o la cadena entre comillas inmediatamente después de la (o lo que sea) código de estado 200 y el tamaño transferido. Las posibilidades son muy altas que no todos los clientes han bloqueado o falsa la cabecera, por lo que verá las direcciones URL con enlaces desde.

También puede descargar los registros utilizando el SDK, y buscar / proceso a nivel local:

appcfg.py --email=whatever request_logs some_filename
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top