IP Detection

Comprobación masiva de IPs

Evalúa una lista de direcciones en una solicitud, o recibe los resultados a medida que llegan.

Comprobar una lista

POST/v1/bulk/check
Clave de API

Parámetros

  • ipsstring[]

    Direcciones, opcionalmente con puerto. Envía esto o input.

  • inputstring

    Texto pegado; el servidor encuentra las direcciones.

Campos de la respuesta

  • submittedinteger

    Elementos recibidos.

  • uniqueinteger

    Direcciones distintas comprobadas.

  • duplicatesinteger

    Direcciones enviadas más de una vez.

  • invalidstring[]

    Entradas que no eran direcciones válidas.

  • summaryobject

    Número de resultados por nota y veredicto. Desde Starter, vacío en Free.

  • planRequiredstring

    Plan que incluye los campos bloqueados. Ausente desde Starter.

  • results[].ipstring

    Dirección IP comprobada.

  • results[].portinteger

    Puerto de la entrada, si lo había.

  • results[].scoreinteger | null

    Puntuación de limpieza de 0 a 100. Desde Starter, null en Free.

  • results[].gradestring | null

    S+, S, A, B o C. Desde Starter, null en Free.

  • results[].verdictstring | null

    clean, suspect o dirty. Desde Starter, null en Free.

  • results[].classificationstring

    residential_clean, mobile, hosting, datacenter, vpn, residential_proxy, tor, relay o unknown.

  • results[].confidencenumber

    Confianza de 0 a 1.

  • results[].anonymizedboolean

    True cuando la red oculta a la persona que hay detrás. El hosting cuenta, salvo la infraestructura conocida.

  • results[].vpnProviderstring | null

    Servicio VPN de una dirección vpn (NordVPN, Mullvad...), si se conoce. Desde Starter, null en Free.

  • results[].isTorExitboolean

    True para nodos de salida de Tor.

  • results[].inVpnRangeboolean

    True cuando la IP está en un rango de VPN conocido.

  • results[].inDatacenterRangeboolean

    True cuando la IP está en un rango de datacenter conocido.

  • results[].deductionsarray | null

    Puntos restados a la puntuación, cada uno con su motivo. Desde Starter, null en Free.

  • results[].lockedstring[]

    Campos de esta fila enviados como null en este plan. Ausente desde Starter.

curl -X POST https://ipscanner.io/v1/bulk/check \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ips":["185.220.101.1","24.48.0.1:8080"]}'
Respuesta
{
  "submitted": 2,
  "unique": 2,
  "duplicates": 0,
  "invalid": [],
  "summary": {
    "clean": 1,
    "dirty": 1
  },
  "results": [
    {
      "input": "185.220.101.1",
      "ip": "185.220.101.1",
      "score": 0,
      "grade": "C",
      "verdict": "dirty",
      "classification": "tor",
      "confidence": 0.95,
      "anonymized": true,
      "vpnProvider": null,
      "isTorExit": true,
      "inVpnRange": false,
      "inDatacenterRange": false,
      "asn": "AS60729",
      "asnName": "Stiftung Erneuerbare Freiheit",
      "country": "DE",
      "deductions": [
        {
          "factor": "network_origin",
          "points": 98,
          "detail": "tor at high confidence"
        }
      ]
    },
    {
      "input": "24.48.0.1:8080",
      "ip": "24.48.0.1",
      "port": 8080,
      "score": 88,
      "grade": "S",
      "verdict": "clean",
      "classification": "residential_clean",
      "confidence": 0.3,
      "anonymized": false,
      "vpnProvider": null,
      "isTorExit": false,
      "inVpnRange": false,
      "inDatacenterRange": false,
      "asn": "AS5769",
      "asnName": "VIDEOTRON",
      "country": "CA",
      "deductions": [
        {
          "factor": "no_corroboration",
          "points": 8,
          "detail": "no observation on record for this IP"
        }
      ]
    }
  ]
}

Transmitir una lista

POST/v1/ip/bulk
Clave de APINDJSON

Parámetros

  • ipsstring[]

    Direcciones, opcionalmente con puerto. Envía esto o input.

  • inputstring

    Texto pegado; el servidor encuentra las direcciones.

Campos de la respuesta

  • typestring

    meta, result, error o done.

  • indexinteger

    Posición de la dirección en la lista sin duplicados, desde 0.

  • ipstring

    Dirección IP comprobada.

  • verdictstring | null

    clean, suspect o dirty. Desde Starter, null en Free.

  • classificationstring

    residential_clean, mobile, hosting, datacenter, vpn, residential_proxy, tor, relay o unknown.

  • scoreinteger | null

    Puntuación de limpieza de 0 a 100. Desde Starter, null en Free.

  • gradestring | null

    S+, S, A, B o C. Desde Starter, null en Free.

  • vpnProviderstring | null

    Servicio VPN de una dirección vpn, ausente si no se conoce. Desde Starter, null en Free.

  • lockedstring[]

    Líneas de resultado: campos enviados como null en este plan. Ausente desde Starter.

  • planRequiredstring

    Línea meta: plan que incluye los campos bloqueados. Ausente desde Starter.

  • reasonstring

    En error: invalid_ip o reserved. En done: complete o quota_exceeded.

  • processedinteger

    En done: direcciones comprobadas.

  • failedinteger

    En done: direcciones que no se pudieron comprobar.

  • totalinteger

    En meta y done: direcciones únicas de la solicitud.

curl -X POST -N https://ipscanner.io/v1/ip/bulk \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ips":["185.220.101.1","24.48.0.1","10.0.0.1"]}'
Respuesta, un objeto JSON por línea
{"type":"meta","total":3,"metered":3}
{"type":"result","ip":"185.220.101.1","verdict":"dirty","classification":"tor","confidence":0.95,"anonymized":true,"score":0,"grade":"C","isTorExit":true,"asn":"AS60729","country":"DE"}
{"type":"result","index":1,"ip":"24.48.0.1","verdict":"clean","classification":"residential_clean","confidence":0.3,"score":88,"grade":"S","asn":"AS5769","country":"CA"}
{"type":"error","index":2,"input":"10.0.0.1","reason":"reserved","message":"private address"}
{"type":"done","reason":"complete","total":3,"processed":2,"failed":1}