Script para la geolocalización por IP con Python

  • 2 Respuestas
  • 396 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado PeterParker

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil

Script para la geolocalización por IP con Python

  • en: Julio 12, 2020, 05:56:27 pm
Hola amigos del internet. Quiero mostrarle un script que realice hace mucho tiempo y lo publicque en un blog recientemente. Es muy interesante y me hace pensar en todo lo que saben las grandes empresas hoy en día. Pueden saber mucho con nuestra IP. Ya sin mucha explicación aquí el script.

Código: Python
  1. import requests
  2. import json
  3.  
  4. # URL de la API
  5. api_url = "http://ip-api.com/json/"
  6.  
  7. # Definimos los parametros de respuesta que queremos obtener
  8. parametros = 'status,country,countryCode,region,regionName,city,zip,lat,lon,timezone,isp,org,as,query'
  9. data = {"fields":parametros}
  10.  
  11. def ip_scraping(ip=""):
  12.    # Nos conectamos con la API
  13.    res = requests.get(api_url+ip, data=data)
  14.    # Obtenemos y procesamos la respuesta JSON
  15.    api_json_res = json.loads(res.content)
  16.    return api_json_res
  17.  
  18. if __name__ == '__main__':
  19.    # Solicitamos la entrada
  20.    ip = input("Ingrese la dirección IP: ")
  21.    
  22.    # Llamamos a la función ip_scraping y mostramos los resultados
  23.    par = parametros.split(",")
  24.    for x in par:
  25.       print(x.upper(), ":")
  26.       print(ip_scraping(ip)<ul class="bbc_list"><li type="square">)[/li][/list]
  27.       print("\n")
  28.    
  29.  

Si quieres, puedes ver como funciona el código en tiempo real en linea. Te dejo el link: You are not allowed to view links. Register or Login

Les agradecería mucha si me dan su opinión. Alguna sugerencia.


Desconectado Kirari

  • *
  • Moderator
  • Mensajes: 218
  • Actividad:
    70%
  • Country: ru
  • Reputación 11
  • No dejes que el mundo te corrompa
    • Ver Perfil
    • Baúl para el público
Buenas @You are not allowed to view links. Register or Login:)

He visto varios errores en tu código.

Para empezar, si quiere mostrar todos estos valores:


Código: Python
  1. parametros = 'status,country,countryCode,region,regionName,city,zip,lat,lon,timezone,isp,org,as,query'
  2. data = {"fields":parametros}
  3.  

Entonces, realmente no hace falta que hagas un string con los mismos, lo mismo va para la variable data, ya que al hacer la petición, basta con enviarle la misma IP y nada más.

En la función ip_scraping, si *ip=""* quiere decir que al ingresar nada, devuelva los datos de su propia ip, entonces, podría solo dejar el parámetro ip, ya que al concatenarla con la cadena *api_url* va a ser igual a la misma.

Luego tenemos el for:


Código: Python
  1. par = parametros.split(",")
  2.    for x in par:
  3.       print(x.upper(), ":")
  4.       print(ip_scraping(ip)<ul class="bbc_list"><li type="square">)[/li][/list]
  5.       print("\n")
  6.  

En esta sección del código se itera sobre todos los valores de la lista par. Por cada iteración, se imprime el mismo objeto JSON. Y además, no sé que quiso hacer acá, además de lo dicho anteriormente, aunque lo más probable es que se haya confundido:

Código: Python
  1. print(ip_scraping(ip)<ul class="bbc_list"><li type="square">)[/li][/list]
  2.  

Hay otro par de errores que mencionar, pero creo que le falta aprender un poco más sobre Python. Acá le dejo un manual que le guiará bastante a mejorar todo lo dicho.

You are not allowed to view links. Register or Login

Y además, le dejo mi versión de su código (lo hice más módular) para que lo examine. No dude en preguntar, acá estaremos para ayudarlo  ;) ;)

Código: Python
  1. import requests
  2. import json
  3.  
  4. # URL de la API
  5. api_url = "http://ip-api.com/json/"
  6.  
  7. # Obtener toda la informacion acerca de la IP
  8. def get_info(ip):
  9.     # el .decode() sirve para decodicar la cadena que está en bytes
  10.     res = requests.get(api_url+ip).content.decode()
  11.     return res
  12.  
  13. # Obtener objeto JSON
  14. def get_object(request_obj):
  15.     api_json_res = json.loads(request_obj)
  16.     return api_json_res
  17.  
  18. # Guardar resultados
  19. def save_results(info):
  20.    
  21.     # Obtener la info como un objeto
  22.     ip_object = get_object(info)
  23.  
  24.     results = "\n"
  25.    
  26.     # Recorrer objeto por identificador key y almacenar en results la cadena
  27.     for key in ip_object:
  28.         results += key + ": " + str(ip_object[key]) + "\n"
  29.  
  30.     return results
  31.  
  32. if __name__ == '__main__':
  33.    
  34.     # Solicitamos la entrada
  35.     ip = input("Ingrese la dirección IP: ")
  36.    
  37.     info = get_info(ip)
  38.    
  39.     results = save_results(info)
  40.  
  41.     # Mostrar resultados
  42.     print (results)
  43.  

Saludos!
-Kirari
« Última modificación: Julio 12, 2020, 07:54:03 pm por Kirari »
Jamás te contarán la verdadera versión, siempre te dirán la suya... Por eso... Si quieres saber la verdad, debes buscarla tú mismo...

Desconectado bronymaricon

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Country: ua
  • Reputación 0
  • -BR0NYHCK.bat-
    • Ver Perfil
waw muy bueno!! gracias!!
/////  -BR0NYHCK.bat-  tg: @bronymaricon /////

 

DoHC2: aprovechado para comando y control a través de DNS a través de HTTPS

Iniciado por CyberSec777

Respuestas: 0
Vistas: 2672
Último mensaje Febrero 24, 2019, 05:39:27 pm
por CyberSec777
Computer-Kingdom: ¿Flojera de usar el navegador para buscar una palabra?

Iniciado por DtxdF

Respuestas: 5
Vistas: 1372
Último mensaje Noviembre 13, 2019, 02:38:22 pm
por DtxdF
combo: Una simple herramienta para cifrar/descifrar tus archivos con Shalom

Iniciado por DtxdF

Respuestas: 0
Vistas: 1089
Último mensaje Diciembre 03, 2019, 01:01:27 am
por DtxdF
PythonLOIC - Nueva herramienta para ataques Ddos

Iniciado por ANTRAX

Respuestas: 17
Vistas: 11045
Último mensaje Septiembre 08, 2014, 05:38:01 pm
por Hexs
[APORTE] cat.py, herramienta para buscar panel administrativo web

Iniciado por insomnia

Respuestas: 2
Vistas: 3021
Último mensaje Agosto 03, 2020, 10:15:34 am
por insomnia