IP Detection

Vérification d'IP en masse

Évaluez une liste d'adresses en une requête, ou recevez les résultats en flux.

Vérifier une liste

POST/v1/bulk/check
Clé API

Paramètres

  • ipsstring[]

    Adresses, avec un port en option. Envoyez ceci ou input.

  • inputstring

    Texte collé ; le serveur y trouve les adresses.

Champs de la réponse

  • submittedinteger

    Éléments reçus.

  • uniqueinteger

    Adresses distinctes vérifiées.

  • duplicatesinteger

    Adresses envoyées plusieurs fois.

  • invalidstring[]

    Entrées qui n'étaient pas des adresses utilisables.

  • summaryobject

    Nombre de résultats par note et par verdict. À partir de Starter, vide sur Free.

  • planRequiredstring

    Formule qui inclut les champs verrouillés. Absent à partir de Starter.

  • results[].ipstring

    Adresse IP vérifiée.

  • results[].portinteger

    Port de l'entrée, s'il y en avait un.

  • results[].scoreinteger | null

    Score de propreté de 0 à 100. À partir de Starter, null sur Free.

  • results[].gradestring | null

    S+, S, A, B ou C. À partir de Starter, null sur Free.

  • results[].verdictstring | null

    clean, suspect ou dirty. À partir de Starter, null sur Free.

  • results[].classificationstring

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

  • results[].confidencenumber

    Confiance de 0 à 1.

  • results[].anonymizedboolean

    true si le réseau masque la personne derrière. L'hébergement compte, sauf l'infrastructure connue.

  • results[].vpnProviderstring | null

    Service VPN d'une adresse vpn (NordVPN, Mullvad...), si connu. À partir de Starter, null sur Free.

  • results[].isTorExitboolean

    true pour les nœuds de sortie Tor.

  • results[].inVpnRangeboolean

    true si l'IP est dans une plage VPN connue.

  • results[].inDatacenterRangeboolean

    true si l'IP est dans une plage de datacenter connue.

  • results[].deductionsarray | null

    Points retirés du score, chacun avec une raison. À partir de Starter, null sur Free.

  • results[].lockedstring[]

    Champs de cette ligne envoyés à null avec cette formule. Absent à partir de 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"]}'
Réponse
{
  "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"
        }
      ]
    }
  ]
}

Vérifier en flux

POST/v1/ip/bulk
Clé APINDJSON

Paramètres

  • ipsstring[]

    Adresses, avec un port en option. Envoyez ceci ou input.

  • inputstring

    Texte collé ; le serveur y trouve les adresses.

Champs de la réponse

  • typestring

    meta, result, error ou done.

  • indexinteger

    Position de l'adresse dans la liste dédoublonnée, à partir de 0.

  • ipstring

    Adresse IP vérifiée.

  • verdictstring | null

    clean, suspect ou dirty. À partir de Starter, null sur Free.

  • classificationstring

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

  • scoreinteger | null

    Score de propreté de 0 à 100. À partir de Starter, null sur Free.

  • gradestring | null

    S+, S, A, B ou C. À partir de Starter, null sur Free.

  • vpnProviderstring | null

    Service VPN d'une adresse vpn, absent si inconnu. À partir de Starter, null sur Free.

  • lockedstring[]

    Lignes de résultat : champs envoyés à null avec cette formule. Absent à partir de Starter.

  • planRequiredstring

    Ligne meta : formule qui inclut les champs verrouillés. Absent à partir de Starter.

  • reasonstring

    Sur error : invalid_ip ou reserved. Sur done : complete ou quota_exceeded.

  • processedinteger

    Sur done : adresses vérifiées.

  • failedinteger

    Sur done : adresses qui n'ont pas pu être vérifiées.

  • totalinteger

    Sur meta et done : adresses uniques de la requête.

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"]}'
Réponse, un objet JSON par ligne
{"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}