Notas de Luis

Podemos hacer escaneos de direcciones IP desde AbuseIP con este código, donde analizamos una dirección y obtener la respuesta en formato JSON:

import requests
 
# Definir la URL de la API y la clave de la API
url = "https://api.abuseipdb.com/api/v2/check"
api_key = "API"
 
# Definir los parámetros de la solicitud
informacion = {
    "ipAddress": "124.235.251.192",
    "maxAgeInDays": "90"
}
 
# Definir las cabeceras de la solicitud con la clave de la API
api = {
    "Key": api_key,
    "Accept": "application/json"
}
 
# Realizar la solicitud a la API
response = requests.get(url, headers=api, params=informacion)
 
# Mostrar la respuesta de la API
respuesta = response.json()
print(respuesta)

DETECTAR NÚMERO DE REPORTES ABUSEIP CON PYTHON

Podemos filtrar únicamente la parte donde se muestran los reportes de una IP filtrando la información, ya que se trata de un diccionario:

import requests
 
url = "https://api.abuseipdb.com/api/v2/check"
api_key = "API"
 
informacion = {
    "ipAddress": "124.235.251.192",
    "maxAgeInDays": "90"
}
 
api = {
    "Key": api_key,
    "Accept": "application/json"
}
 
response = requests.get(url, headers=api, params=informacion)
 
respuesta = response.json()
 
# Filtramos sólo la parte de los reportes:
 
print(respuesta['data']['totalReports'])

AUTOMATIZAR EL ESCANEO DE VARIAS IP EN ABUSEIP CON PYTHON

Si quiero escanear varias direcciones a la vez, podría hacer un bucle:

import requests
 
url = "https://api.abuseipdb.com/api/v2/check"
api_key = "API"
 
listado_ip = ['124.235.251.192', '177.36.187.95', '64.62.197.232', '118.201.79.222']
 
for cada_ip in listado_ip:
    informacion = {
        "ipAddress": cada_ip,
        "maxAgeInDays": "90"
    }
    api = {
        "Key": api_key,
        "Accept": "application/json"
    }
 
    response = requests.get(url, headers=api, params=informacion)
    respuesta = response.json()
 
# Filtramos sólo la parte de los reportes:
 
    ip = respuesta['data']['ipAddress']
    reportes = respuesta['data']['totalReports']
 
    print(f"Para la IP {ip}, tiene estos reportes {reportes}")

FILTRAR AQUELLAS IP CON UN DETERMINADO NÚMERO DE REPORTES

Si quiero ver sólo aquellas direcciones con un número determinado de reportes, lo haría de esta forma:

import requests
 
url = "https://api.abuseipdb.com/api/v2/check"
api_key = "API"
 
listado_ip = ['124.235.251.192', '177.36.187.95', '64.62.197.232', '118.201.79.222']
 
for cada_ip in listado_ip:
    informacion = {
        "ipAddress": cada_ip,
        "maxAgeInDays": "90"
    }
    api = {
        "Key": api_key,
        "Accept": "application/json"
    }
 
    response = requests.get(url, headers=api, params=informacion)
    respuesta = response.json()
 
# Filtramos sólo la parte de los reportes:
 
    ip = respuesta['data']['ipAddress']
    reportes = respuesta['data']['totalReports']
 
# Aquí solo nos dice aquellas IP que tienen más de un determinado número de reportes:
 
    if reportes >= 400:
        print(f"La IP {ip}, tiene más de 400 reportes, con un número de {reportes}")

computing/coding/python/api/conectar_python_con_abuseip.txt · Última modificación: por 127.0.0.1