disposable-phone-numbers
收藏数据集概述
数据集名称:Disposable Phone Numbers(一次性电话号码列表)
维护方:Castle 研究团队
更新频率:每日自动更新
数据集规模:1000 个最活跃的一次性电话号码
数据集的用途
一次性电话号码是现代注册滥用行为的关键基础设施。该数据集旨在帮助识别和防御以下滥用行为:
- 虚假账户创建
- 多账户注册
- 促销滥用
- 推荐滥用
- SMS验证绕过
- 垃圾信息操作
数据集特点
- 每日更新:全自动化流水线,无需依赖社区提交。
- 精选而非聚合:不导入公共仓库的电话号码,每个号码均经独立验证并与真实的一次性电话服务关联。
- 真实滥用观测:电话号码来源于Castle网络中观察到的虚假注册、多账户和SMS验证滥用活动。
- 小而精:仅包含1000个号码,便于安全操作,减少误报。
数据收集方法
持续抓取一次性电话服务提供商网站,提取其公开暴露的用于SMS验证的电话号码。许多提供商会持续轮换:
- 电话号码
- 国家覆盖范围
- 电信运营商
- 虚拟运营商基础设施
收集管道持续跟踪这些变化。数据集按Castle网络中观察到的滥用流行度排序,最高信号号码排在前面。
数据格式
文件名:disposable-phone-numbers.txt
格式:
- 纯文本,每行一个电话号码
- E.164格式
- 按滥用流行度排序,最常被滥用的号码排在首位
示例:
+15551234567 +447700900123 +33612345678
使用方式
- 直接下载:可通过
https://raw.githubusercontent.com/castle/disposable-phone-numbers/master/disposable-phone-numbers.txt获取最新版本。 - 内存加载:数据集足够小,可完全加载到内存中。
Python 示例: python import urllib.request
URL = "https://raw.githubusercontent.com/castle/disposable-phone-numbers/master/disposable-phone-numbers.txt"
disposable_numbers = set( urllib.request.urlopen(URL) .read() .decode() .splitlines() )
def is_disposable(phone_number: str) -> bool: return phone_number in disposable_numbers
JavaScript / Node.js 示例: javascript const response = await fetch( "https://raw.githubusercontent.com/castle/disposable-phone-numbers/master/disposable-phone-numbers.txt" );
const text = await response.text();
const disposableNumbers = new Set( text.split(" ").map(n => n.trim()).filter(Boolean) );
function isDisposable(phoneNumber) { return disposableNumbers.has(phoneNumber); }
数据集局限
- 并非穷尽:仅包含当前滥用活动中观测到的前1000个一次性电话号码。Castle内部数据集规模更大且持续演进。
- 非阻断建议:如何使用该数据由用户决定。不同团队可采用硬阻断、风险评分、升级验证、限流或人工审核等不同策略。一次性电话使用本身不总是恶意的。
许可证
MIT
相关链接
- Castle — 账户安全与欺诈防护
- Castle Research — 威胁研究与技术文章
- Castle Docs — API与产品文档




