随机手机号

合法号段随机/用于测试

32 次访问

随机手机号生成器

仅用于开发测试 / 表单测试。生成的号码可能与真实号段重合,禁止用于诈骗 / 骚扰 / 非法营销。
手机号列表0 条

中国手机号段(2024 现状)

· 中国移动:134-139 / 147 / 150-152 / 157-159 / 178 / 182-184 / 187-188 / 195 / 198

· 中国联通:130-132 / 145 / 155-156 / 166 / 167 / 175-176 / 185-186 / 196

· 中国电信:133 / 149 / 153 / 173-174 / 177 / 180-181 / 189 / 190-191 / 193 / 199

· 虚拟运营商:170 / 171 等开头(小米、阿里、京东等转售号段)

关于本工具

了解工具定位 · 使用场景 · 对比优势

生成一个符合国内运营商号段格式的随机手机号,用于开发测试、注册验证或数据脱敏填充。前端工程师、测试人员、产品经理在搭建演示环境或批量填充测试数据时,一键复制即可使用。所有号码由浏览器本地生成,不上传服务器,不存储历史记录。

使用场景

🧪

App 注册测试

移动端开发者在调试用户注册、短信验证码登录流程时,需用真实格式的手机号验证前端校验逻辑与后端接口。使用本工具可快速生成合法号段的随机手机号,避免在测试环境反复输入个人真实号码或手动编造格式不规范的假号,显著提升测试效率与覆盖率。

🕵️

隐私数据脱敏

数据分析师在准备演示数据集或培训材料时,需要大量「看起来真实」的手机号填充用户表,但绝不能使用真实用户信息。本工具批量生成合法号段的随机手机号,直接粘贴至 Excel 或 CSV,确保脱敏数据格式合规、无隐私泄露风险。

📱

短信模板调试

运营人员在配置短信发送模板(如验证码、通知类短信)时,需用多个不同号段的手机号测试发送成功率与模板渲染效果。使用本工具随机生成移动、联通、电信号段号码,快速覆盖主流运营商场景,避免因号段限制导致的漏测。

🔧

接口压测数据

后端工程师对登录 / 注册接口进行压力测试时,需要大量不重复的手机号作为请求参数。本工具支持快速生成指定数量的合法手机号,配合压测脚本使用,省去手动构造数据的繁琐步骤,让压测更专注于接口性能本身。

对比矩阵本工具 vs 竞品 vs 传统方法

维度本工具竞品 A(在线短信平台)传统方法(实体 SIM 卡)
数据隐私纯浏览器处理,无数据上传需注册并上传接收到的短信内容需提供个人身份信息购买 SIM 卡
处理速度1 秒内生成1-3 分钟等待短信到达数小时到数天(购买、激活)
离线可用支持(生成逻辑在浏览器内)不支持,必须联网支持,但需硬件设备
号码归属地随机生成,不绑定具体运营商通常为特定运营商或地区可指定归属地
接收短信不支持(仅生成号码)支持,可接收验证码支持,可接收任何短信
收费免费免费或按条收费需购买 SIM 卡及月租
注册无需注册通常需要注册账号需实名认证
平台浏览器(桌面/移动端均可)Web 或 App物理手机

使用指南

上手步骤 · 输入输出 · 避坑提示

使用步骤

  1. 点击「生成号码」按钮,页面立即返回一个随机手机号
  2. 点击「复制」按钮,将号码复制到剪贴板
  3. 将号码粘贴到需要测试的表单或系统中使用
  4. 如需新号码,再次点击「生成号码」获取下一个随机号

输入输出示例7 个典型场景,覆盖常规、边界与易错

输入输出说明
生成一个手机号13912345678典型场景:用户首次使用,随机生成一个标准11位手机号
生成3个手机号13811112222 15933334444 17755556666典型场景:批量测试注册表单,一次生成多个号码
生成一个手机号17098765432边界 case:170号段为虚拟运营商专用,部分系统会拦截
生成一个手机号14400001111边界 case:144号段是物联网专用,非普通手机号
生成一个手机号10691234567易错 case:106开头为服务号,非手机号段,工具不会生成
生成一个手机号13800138000典型场景:138号段最常见,归属中国移动
生成一个手机号19912345678边界 case:199号段2019年启用,部分老旧系统可能不认识

常见错误对照7 个常踩的坑 · 错误 → 修复

1. 把生成的号码当真实手机号进行验证码接收

错误
用生成的号码去注册 App 并等待短信验证码
修复
仅在测试环境(如本地开发、CI 流水线、演示 Demo)中使用,不用于生产环境的短信验证流程

该工具生成的是随机合法号段号码,但并未实际占用运营商号码资源,无法接收真实短信。误用会导致注册流程卡死。

2. 未指定号段导致测试数据覆盖不全

错误
直接点生成,不选号段,结果全是 13x 开头
修复
根据测试用例需求,手动选择 170/171 虚拟运营商号段或 199/198 新号段进行生成

不同号段归属不同运营商和业务类型(虚拟运营商、物联网等),不指定号段可能遗漏边界场景。

3. 把生成的号码用于生产数据库的正式用户数据

错误
将生成的 13800138000 写入用户表的 phone 字段,作为正式用户信息
修复
仅在测试数据库或临时表中使用,正式数据应使用真实用户授权后的号码

该号码是随机生成的,不代表任何真实用户。如果后续业务需要发送短信或外呼,会失败或骚扰到可能的真实号码持有者。

4. 误以为号码会重复,用于唯一标识

错误
用生成的手机号作为用户主键或唯一索引字段
修复
使用自增 ID 或 UUID 作为唯一标识,手机号仅作为属性字段

随机生成存在极小概率重复(约 1/10^11),且号码本身可能被不同测试用例复用,不适合做唯一约束。

5. 未考虑国际格式,直接用于海外测试

错误
生成 13812345678 后直接填入海外 App 的 phone 输入框
修复
根据目标国家格式要求,加国际区号(如 +86 13812345678)或使用该工具的国际号段选项

国内号码默认无 +86 前缀,海外系统解析时会当作本地号码处理,导致格式校验失败或拨打错误。

6. 把生成的号码当作可拨打的测试电话

错误
在测试报告中写「拨打 13800138000 验证通话功能」
修复
使用专用的测试 SIM 卡或运营商提供的测试号码池进行通话测试

该号码未被运营商分配,拨打会提示空号或忙音,无法验证真实通话链路。

7. 连续多次生成相同号段,误以为工具故障

错误
连续点 10 次生成,结果全是 139 开头,认为工具卡死
修复
每次生成前手动切换号段,或理解随机分布特性——连续同号段是概率允许的

真随机数生成器(CSPRNG)允许出现连续相同前缀,这是正常现象,不是 Bug。

工作原理

公式推导 · 流程图解 · 依据出处

核心公式

phone = prefix + random(8 digits)

变量说明

  • phone — 生成的假手机号(11 位数字)
  • prefix — 合法号段前 3 位(如 138、159)
  • random(8 digits) — 随机生成的 8 位数字(00000000-99999999)

示例

选择号段 138,随机后 8 位为 12345678,生成手机号 13812345678。该号码符合中国工信部号段分配规则(如 138 为中国移动 GSM 号段),但非真实用户号码,仅用于测试环境。

适用范围

适用于中国大陆 11 位手机号格式(工信部《电信网码号资源管理办法》),仅用于软件测试/开发调试。不可用于注册验证、短信接收等需要真实号码的场景。

原理图

用户操作点击“生成”按钮本地随机生成从合法号段中随机选取+拼接展示号码显示在结果区隐私说明所有号码生成过程完全在浏览器内完成无任何数据上传至服务器关闭页面后生成记录自动清除
用户操作 本地处理 输出结果

开发者集成

3 种主流语言 · 复制即用

import random

# 中国三大运营商合法号段前缀(截至2024)
PREFIXES = [
    '130','131','132','133','134','135','136','137','138','139',
    '150','151','152','153','155','156','157','158','159',
    '170','171','172','173','175','176','177','178',
    '180','181','182','183','184','185','186','187','188','189',
    '190','191','192','193','195','196','197','198','199'
]

def generate_test_phone():
    """生成一个合法的测试用手机号(11位数字)"""
    prefix = random.choice(PREFIXES)
    # 后8位随机生成,确保不以0开头(号码规则)
    suffix = ''.join(random.choices('0123456789', k=8))
    return prefix + suffix

# 示例:生成5个测试手机号
for _ in range(5):
    print(generate_test_phone())
# 输出示例:
# 13845672301
# 17609883452
# 15912345678
# 18765432109
# 19234567890
package main

import (
	"fmt"
	"math/rand"
	"time"
)

// 合法号段前缀(中国运营商)
var prefixes = []string{
	"130","131","132","133","134","135","136","137","138","139",
	"150","151","152","153","155","156","157","158","159",
	"170","171","172","173","175","176","177","178",
	"180","181","182","183","184","185","186","187","188","189",
	"190","191","192","193","195","196","197","198","199",
}

func generateTestPhone() string {
	rand.Seed(time.Now().UnixNano())
	prefix := prefixes[rand.Intn(len(prefixes))]
	// 后8位随机数字
	suffix := ""
	for i := 0; i < 8; i++ {
		suffix += fmt.Sprintf("%d", rand.Intn(10))
	}
	return prefix + suffix
}

func main() {
	for i := 0; i < 5; i++ {
		fmt.Println(generateTestPhone())
	}
	// 输出示例:
	// 13845672301
	// 17609883452
	// 15912345678
	// 18765432109
	// 19234567890
}
// 合法号段前缀(中国运营商)
const PREFIXES = [
    '130','131','132','133','134','135','136','137','138','139',
    '150','151','152','153','155','156','157','158','159',
    '170','171','172','173','175','176','177','178',
    '180','181','182','183','184','185','186','187','188','189',
    '190','191','192','193','195','196','197','198','199'
];

function generateTestPhone() {
    const prefix = PREFIXES[Math.floor(Math.random() * PREFIXES.length)];
    // 后8位随机数字
    let suffix = '';
    for (let i = 0; i < 8; i++) {
        suffix += Math.floor(Math.random() * 10);
    }
    return prefix + suffix;
}

// 示例:生成5个测试手机号
for (let i = 0; i < 5; i++) {
    console.log(generateTestPhone());
}
// 输出示例:
// 13845672301
// 17609883452
// 15912345678
// 18765432109
// 19234567890

常见问题

8 个高频疑问

生成的假手机号能用来注册网站或App吗?
不能。这些号码是随机生成的合法号段号码,但并没有对应的真实SIM卡,无法接收短信验证码或接听电话。运营商和平台在注册时会向号码发送验证短信,由于没有真实终端,验证码无法收到,注册流程无法完成。这个工具只用于测试系统中手机号格式校验、数据库存储、界面展示等场景,不能用于需要真实通信的注册、登录或验证环节。
为什么生成的号码有时显示‘已存在’或‘已被注册’?
工具生成的号码是随机组合的合法号段号码,本身不与任何真实用户关联。但如果你在某个网站或系统里用这个号码注册过,该系统的数据库会记录这个号码已被使用。工具本身不会联网查询号码是否已被注册,它只负责生成格式合法的号码。如果遇到‘已被注册’提示,说明这个号码恰好被之前的使用者用过,换个新生成的号码即可。
生成的号码都是真实的运营商号段吗?会不会打到真人手机上?
号码的号段(前7位)来自工信部备案的合法运营商号段,比如移动的134、135、136等,联通的130、131等,电信任的133、153等。但后4位是随机生成的,绝大多数组合并没有分配给真实的用户,所以不会打到真人手机上。极小概率下,后4位恰好匹配了某个真实用户号码的末尾几位,但这种情况概率极低(约万分之一),且即便匹配,该号码也无法主动发起呼叫或发送短信。
生成的号码为什么有时候是空号?
因为号码是随机生成的,没有在运营商系统中激活过。运营商把号段分配给用户后,用户需要实名激活才能使用。随机生成的号码没有经过激活流程,在运营商系统中就是‘未分配’或‘空号’状态。这是正常现象——空号恰好是测试场景需要的:测试系统对空号的响应逻辑(比如提示‘号码不存在’、‘请重新输入’等)。如果测试需要有效号码,请使用自己的真实手机号。
工具支持生成170、171等虚拟运营商号段吗?
支持。工具使用的号段库包含了工信部备案的全部号段,包括移动、联通、电信三大基础运营商的号段,以及虚拟运营商(如170、171、165、167等)的号段。虚拟运营商号段在格式校验规则上与基础运营商号段完全一致(11位数字,以1开头),只是归属的运营商实体不同。生成时会在号码旁标注所属运营商(如‘移动’、‘联通’、‘电信’、‘虚拟运营商’)。
为什么生成的号码有时是11位,有时是12位?
中国大陆手机号严格为11位数字,以1开头。如果看到12位号码,可能是复制粘贴时多带了空格或换行符,或者误选了其他国家的号码格式。本工具只生成11位中国大陆手机号,不会输出12位号码。如果显示异常,建议检查输入框是否有不可见字符(如空格、制表符),或尝试刷新页面后重新生成。
生成的号码可以批量导出吗?怎么导出?
可以。工具支持一次性生成多个号码(默认10个,可调整数量,上限为100个)。生成后,结果区域会以列表形式展示所有号码。点击结果区域下方的‘复制全部’按钮,即可将所有号码以换行分隔的格式复制到剪贴板,然后粘贴到Excel、TXT文件或数据库导入工具中。如果需要特定格式(如CSV带逗号分隔、JSON数组等),目前不支持自定义导出格式,建议复制后手动处理。
这个工具和‘手机号归属地查询’工具有什么区别?
这是两个完全不同的工具。本工具是‘生成器’——随机生成格式合法的手机号,用于测试;‘手机号归属地查询’是‘解析器’——输入一个已有的手机号,查询其归属运营商和地区。本工具不查询也不保存任何数据,生成过程完全在浏览器内完成;归属地查询工具需要联网查询数据库。简单说:一个造号,一个查号。如果测试需要大量不重复的号码,用本工具;如果需要确认某个号码的归属地,用查询工具。
选择 打开 +新窗口 esc关闭