IP Detection
批量 IP 偵測
一次請求評估整個位址清單,或在結果產生時逐筆接收。
偵測清單
參數
- ipsstring[]
位址,可附帶連接埠。與 input 二擇一。
- inputstring
貼上的文字;伺服器會從中找出位址。
回應欄位
- submittedinteger
收到的項目數。
- uniqueinteger
偵測的不重複位址數。
- duplicatesinteger
重複提交的位址。
- invalidstring[]
並非有效位址的輸入。
- summaryobject
各等級及判定結果的數量。Starter 及以上方案提供,Free 方案為空。
- planRequiredstring
包含被鎖定欄位的方案。Starter 及以上方案不返回此欄位。
- results[].ipstring
被偵測的 IP 位址。
- results[].portinteger
輸入中帶有連接埠時的連接埠號碼。
- results[].scoreinteger | null
純淨度分數,0 至 100。Starter 及以上方案提供,Free 方案為 null。
- results[].gradestring | null
S+、S、A、B 或 C。Starter 及以上方案提供,Free 方案為 null。
- results[].verdictstring | null
clean、suspect 或 dirty。Starter 及以上方案提供,Free 方案為 null。
- results[].classificationstring
residential_clean、mobile、hosting、datacenter、vpn、residential_proxy、tor、relay 或 unknown。
- results[].confidencenumber
信心分數,範圍 0 至 1。
- results[].anonymizedboolean
網絡隱藏了背後的使用者時為 true。託管網絡亦計算在內,已知基礎設施除外。
- results[].vpnProviderstring | null
vpn 地址所屬的 VPN 服務(NordVPN、Mullvad 等),已知時返回。Starter 及以上方案提供,Free 方案為 null。
- results[].isTorExitboolean
Tor 出口節點為 true。
- results[].inVpnRangeboolean
IP 位於已知 VPN IP 範圍時為 true。
- results[].inDatacenterRangeboolean
IP 位於已知數據中心 IP 範圍時為 true。
- results[].deductionsarray | null
從分數中扣除的分值,各附原因。Starter 及以上方案提供,Free 方案為 null。
- results[].lockedstring[]
本行在目前方案下以 null 返回的欄位。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"]}'{
"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"
}
]
}
]
}串流偵測清單
參數
- ipsstring[]
位址,可附帶連接埠。與 input 二擇一。
- inputstring
貼上的文字;伺服器會從中找出位址。
回應欄位
- typestring
meta、result、error 或 done。
- indexinteger
位址在去重清單中的位置,由 0 起計。
- ipstring
被偵測的 IP 位址。
- verdictstring | null
clean、suspect 或 dirty。Starter 及以上方案提供,Free 方案為 null。
- classificationstring
residential_clean、mobile、hosting、datacenter、vpn、residential_proxy、tor、relay 或 unknown。
- scoreinteger | null
純淨度分數,0 至 100。Starter 及以上方案提供,Free 方案為 null。
- gradestring | null
S+、S、A、B 或 C。Starter 及以上方案提供,Free 方案為 null。
- vpnProviderstring | null
vpn 地址所屬的 VPN 服務,未知時省略。Starter 及以上方案提供,Free 方案為 null。
- lockedstring[]
結果行:在目前方案下以 null 返回的欄位。Starter 及以上方案不返回此欄位。
- planRequiredstring
meta 行:包含被鎖定欄位的方案。Starter 及以上方案不返回此欄位。
- reasonstring
error 時:invalid_ip 或 reserved。done 時:complete 或 quota_exceeded。
- processedinteger
done 時:已偵測的位址數。
- failedinteger
done 時:無法偵測的位址數。
- totalinteger
meta 及 done 時:請求中不重複的位址數。
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"]}'{"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}