[C#] 使用 AbuselPDB 查詢 IP 黑名單

2022-08-19

這幾天 黑暗執行緒(黑大) 寫了一篇介紹文 - IP 位址的 Whoscall - AbuseIPDB ,剛好最近有可能會用到,所以就研究一下(順便蹭流量?)

主要是因為要跟程式整合所以就查一下有沒有 API 可以 CALL ,其實發現該網站很溫馨,一天可以免費呼叫 1000 次


大概研究一下,覺得最常用的應該是這個 API https://api.abuseipdb.com/api/v2/blacklist

document: https://docs.abuseipdb.com/#blacklist-endpoint

程式碼如下,我有用到 RestShapt 的套件來做 API 呼叫


public static void TestGetBlackList() { var client = new RestSharp.RestClient("https://api.abuseipdb.com/api/"); var request = new RestRequest("v2/blacklist "); request.AddHeader("Key", "APIKEY"); request.AddHeader("Accept", "application/json"); var response = client.Get(request).Content; var result = JsonConvert.DeserializeObject<BlackIpResponse>(response); Console.WriteLine("Count :"+ result.data.Count); //Count :10000 }


回傳模型:

public class BlackIpInfo { public string ipAddress { get; set; } public string countryCode { get; set; } public int abuseConfidenceScore { get; set; } public DateTime lastReportedAt { get; set; } } public class Meta { public DateTime generatedAt { get; set; } } public class BlackIpResponse { public Meta meta { get; set; } public List<BlackIpInfo> data { get; set; } }

不過因為我是免費方案,官方文件檢查IP 一天可以檢查 1,000 次,你只能拿全部的清單五次

然後進入資料庫交叉比對後篩選出目前最新的黑名單,官方文件也有建議  abuseConfidenceScore 要超過 25 不然會誤判最好是 >75

因為我側了幾個大網站的IP 是有機會打到25 的,其實就看你對安全度的判斷

https://docs.abuseipdb.com/#reports-parameters



因為我不知道平均量是多少,但是原則上就是自己建立一個資料庫應去更新應該是最省錢得作法,或是付錢開通比較高級的版本,每一個進線的IP去查詢也可以

查詢一個 IP 程式碼

public static void TestIP() { var client = new RestSharp.RestClient("https://api.abuseipdb.com/api/"); var request = new RestRequest("v2/check"); //Bad // request.AddParameter("ipAddress", "125.212.203.113"); //Azure Portal request.AddParameter("ipAddress", "13.107.246.39"); //這一行加了會有回報紀錄 // request.AddParameter("verbose",null); request.AddHeader("Key", "API_KEY"); request.AddHeader("Accept", "application/json"); var response = client.Get(request).Content; Console.WriteLine(response); }


{ "data":{ "ipAddress":"13.107.246.39", "isPublic":true, "ipVersion":4, "isWhitelisted":false, "abuseConfidenceScore":23, "countryCode":"BE", "usageType":"Data Center\/Web Hosting\/Transit", "isp":"Microsoft Corporation", "domain":"microsoft.com", "hostnames":[ ], "totalReports":3, "numDistinctUsers":3, "lastReportedAt":"2022-08-02T21:40:01+00:00" } }


今天先寫到這之後有啥心得再補充。


reference:

https://blog.darkthread.net/blog/abuseipdb/


當麻許的碎念筆記 2014 | Donma Hsu Design.