IP 地理位置 API 免費方案限制:比較重點
IP 地理位置 API 的免費方案,是一份有上限的查詢額度,通常以每日、每月或每分鐘計算,讓你不必付費就能測試或運行小型專案,而上限只是值得比較的眾多限制之一。
各服務商描述額度所用的單位差異極大,使得直接比較標題數字容易造成誤導。公布的限制也經常變動。因此本文不引述其他服務商的數字,而是提供你可套用在各家目前文件上的檢查清單,並列出 ipto 所採用的確切條款,讓你能進行同基準的比較。
速率限制、配額與突發額度是不同的東西
速率限制控制速度:在伺服器以 HTTP 429 之類的錯誤回應之前,你每秒或每分鐘能送出多少請求。配額控制總量:你在一天或一個月內總共能發出多少請求。服務商可以只有其中之一,也可以兩者皆有,而它們的失敗方式各不相同。
只有每分鐘限制而沒有每月上限的方案適合低流量網站,但可能讓一次突發送出數千筆查詢的批次作業失敗。只有每月配額而沒有每分鐘限制的方案適合批次工作,但無法在額度於當月二十日用完之前,給正式服務任何警告。每日配額介於兩者之間,並依你可以預先規劃的排程重置,前提是你知道重置時間是在 UTC 午夜、滾動的 24 小時,還是綁定你的註冊時間。服務商文件應該要說明是哪一種。
閱讀免費方案頁面時,請記下四個數字:突發或每分鐘的上限、每日或每月的配額、達到上限時的行為(硬性錯誤、節流,或自動超額計費),以及回應標頭是否會揭露你的剩餘額度。對於沒有明確說明這些的服務商,請視為正式環境使用的風險。
「無限制」與「免費」可能隱藏的事
定價表中的「無限制」一詞,很少與工程師希望它代表的意思相符。它可能描述的是每分鐘而非每月的請求數,可能附帶合理使用條款,也可能僅適用於縮減過的欄位集合。最安全的做法是閱讀服務條款而不是定價頁面,並尋找有關合理使用、節流與可接受使用的措辭。
免費方案常在另外三個方面有所不同,這些方面比請求數量更重要:
- 欄位限制。基本位置可能包含在內,而網路、安全或 VPN 相關欄位則屬於付費方案。在比較配額之前,請先確認你實際需要哪些回應欄位。
- 商業用途。有些免費方案明確限於開發、測試或非商業專案。在這類方案上線到正式環境可能違反條款。
- 註冊與金鑰要求。免金鑰存取方便快速測試,但金鑰讓服務商能將流量歸屬於你,有時也能解鎖更高的額度。
以上所有項目的權威來源,都是服務商目前的文件。部落格文章中引用的數字,包括本文的舊版本在內,很快就會過時。
如何依配額估算你自己的流量
配額的比較只有對照你的實際用量才有意義。請從你的流量估算每日查詢次數:如果每次頁面瀏覽都觸發查詢,你很快就會耗盡任何免費額度。如果你只在註冊、結帳或登入時查詢位址,其數量只佔頁面瀏覽量的一小部分。
快取改變了算式。位址的位置與網路擁有者變動緩慢,因此對大多數用途而言,將結果快取數小時或一天是合理的。以 IP 為鍵儲存回應,那麼每個不重複的位址在每個快取週期只需付費一次,而不是每次請求都付費。對於批次工作,請參閱我們關於批次查詢架構的文章,其中涵蓋佇列與退避。
也要為失敗路徑做好規劃。事先決定當 API 回傳錯誤或達到上限的回應時,你的應用程式要怎麼做:失敗時放行並略過資料擴充、對高風險動作失敗時阻擋,或提供快取的值。只有在額度用完時你的程式碼能優雅降級,免費方案才是合理的起點。
ipto 的免費方案包含什麼
ipto 免費且無須註冊,每天允許 1,000 次免費請求。IP 查詢會回傳國家、城市、ASN、組織、貨幣代碼,以及旗標 is_vpn、is_tor、is_abuser、is_datacenter,還有 bogon 與 bogon_type。這些欄位不會被保留在其他方案之後,所以上述關於欄位限制的檢查,一句話就能回答。威脅情資來源每 6 小時更新,IP 與 ASN 資料集每天更新。本服務無法偵測住宅代理,且城市層級的位置本質上就是近似值,如為何城市準確度有限中所說明。
你不用寫程式碼也能試用這些資料。將位址貼入 VPN、Tor 與代理檢查器查看安全旗標,用 ASN 查詢找出網路擁有者,在 IP 濫用檢查器看看位址如何被評等,或閱讀 API 文件了解請求格式。無論你選擇哪家服務商,在做出承諾之前,請將你自己流量中的同一批位址樣本送入每個候選服務測試,因為涵蓋範圍與準確度會因區域與網路類型而異。