You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python验证批量随机手机号是否真实可用?

手机号真实可用性验证方案

核心难点

  • 直接"Ping"手机号本质是确认号码是否活跃,但运营商不会开放无授权的状态查询接口,发送测试短信也面临合规、成本和用户骚扰问题。
  • 运营商的用户状态数据属于隐私范畴,无官方授权无法直接获取。

合规前提下的Python实现思路

1. 利用短信服务商的送达状态回调

对接正规短信服务商,给目标号码发送合规的验证短信(例如"您正在进行号码有效性测试,验证码XXX"),通过服务商的回调接口获取送达状态:

  • 若返回"送达成功",基本可判定号码真实可用;
  • 若返回"号码无效""空号""停机"等状态,直接标记为不可用。

Python简化示例代码:

import requests

def check_phone_validity(phone_num):
    # 替换为实际服务商的API地址与密钥
    api_url = "https://sms-service.example.com/send"
    auth_headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
    sms_data = {
        "phone": phone_num,
        "content": "【测试验证】您的验证码是123456,仅用于号码有效性检测,请忽略。"
    }
    response = requests.post(api_url, headers=auth_headers, json=sms_data)
    result = response.json()
    
    if result.get("code") == 0:
        delivery_status = result.get("delivery_status")
        if delivery_status == "success":
            return f"{phone_num}: 可用"
        elif delivery_status in ["invalid", "停机", "空号"]:
            return f"{phone_num}: 不可用"
    return f"{phone_num}: 状态未知"

# 批量处理示例
phone_list = ["13XXXXXXXXX", "15XXXXXXXXX"]
for phone in phone_list:
    print(check_phone_validity(phone))

注意:必须使用正规服务商,短信内容需合规避免被判定为垃圾短信;批量发送需提前报备,否则可能被限流。

2. 借助语音验证码平台

部分服务商支持语音验证码拨打,通过拨打后的接通状态判断:

  • 若电话能接通(即使被挂断),说明号码处于活跃状态;
  • 若返回"空号""停机""无法接通",则标记为不可用。
    实现逻辑与短信方案一致,仅需替换为语音验证码的API接口。

关键提醒

  • 批量验证手机号必须遵守《个人信息保护法》等法规,不得用于非法用途,非自有号码需提前获得用户授权。
  • 短信或语音验证均有成本,大批量操作可能触发运营商风控,导致账号受限。
  • 不存在无成本、无风险的批量验证方式,所有可行方案都依赖第三方服务商接口,且受合规限制。

内容的提问来源于stack exchange,提问作者jatin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 13:55:28