本文目录导读:

- 场景一:生成随机的、合法的、可用的手机号(用于测试)
- 场景二:生成连续的手机号(用于压力测试、模拟递增数据)
- 场景三:使用 Shell 脚本(Linux/Mac)快速生成
- 如何确保号码不重复?
- 扩展思路:生成指定运营商的号码(验证、测试)
- 为什么生成的号码可能是“无效”的?
- 工具推荐(无需写代码)
生成手机号码的脚本需要根据你的使用场景(如测试、数据分析、学习等)来设计,生成手机号的核心是生成符合中国电信运营商标识(号段)的11位数字。
下面提供几种不同场景下,使用 Python 和 Bash 生成手机号的脚本示例。
重要提示: 如果你是为了骚扰、注册垃圾账号、营销轰炸等非法目的,请不要使用这些代码,这是违法的。
生成随机的、合法的、可用的手机号(用于测试)
合法的手机号需要满足:前3位是真实的号段(如 139, 150, 186 等),中间4位是地区编码(可随机),最后4位是随机数字。
import random
# 真实的手机号号段(前三位或前四位)
# 联通、移动、电信 常见号段
phone_prefixes = [
"130", "131", "132", "133", "134", "135", "136", "137", "138", "139",
"150", "151", "152", "153", "155", "156", "157", "158", "159",
"166", "167",
"170", "171", "172", "173", "175", "176", "177", "178",
"180", "181", "182", "183", "184", "185", "186", "187", "188", "189",
"190", "191", "192", "193", "195", "196", "198", "199"
]
def generate_phone_number():
"""生成一个随机手机号"""
prefix = random.choice(phone_prefixes)
# 生成8位随机数字
suffix = ''.join(random.choices('0123456789', k=8))
return prefix + suffix
# 批量生成 100 个
print("生成的手机号列表:")
phone_numbers = [generate_phone_number() for _ in range(100)]
for i, phone in enumerate(phone_numbers, 1):
print(f"{i}. {phone}")
# 如果需要写入文件:
with open("phones.txt", "w") as f:
for phone in phone_numbers:
f.write(phone + "\n")
print("\n已写入 phones.txt 文件。")
生成连续的手机号(用于压力测试、模拟递增数据)
适合测试接口的防刷能力或模拟用户排队。
def generate_sequential_phones(start_prefix="138", start_suffix=10000000, count=50):
"""生成递增的手机号"""
phones = []
base = int(start_suffix)
for i in range(count):
suffix = str(base + i).zfill(8) # 8位数字,不足补零
phone = start_prefix + suffix
phones.append(phone)
return phones
# 从 13810000000 开始生成 50 个
phones = generate_sequential_phones("138", 10000000, 50)
for p in phones:
print(p)
使用 Shell 脚本(Linux/Mac)快速生成
适合极速小批量测试,不需要安装 Python 的环境。
#!/bin/bash
# 生成 10 个随机手机号
for i in {1..10}
do
# 从常见号段中随机选一个
prefix=("130" "131" "132" "133" "134" "135" "136" "137" "138" "139" "150" "151" "152" "153" "155" "156" "157" "158" "159" "186" "187" "188")
random_prefix=${prefix[$RANDOM % ${#prefix[@]}]}
# 生成 8 位随机数字
suffix=$(printf "%08d" $((RANDOM * RANDOM % 100000000)))
echo "${random_prefix}${suffix}"
done
# 保存到文件
# ./generate.sh > phone_list.txt
如何确保号码不重复?
如果需要生成大量(如 10 万)且互不重复的号码,可以使用 set 数据结构。
import random
def generate_unique_phones(phone_set, count=1000):
"""生成不重复的号码"""
local_set = set()
while len(local_set) < count:
phone = generate_phone_number() # 复用上面的函数
if phone not in phone_set: # 排除全局已有的号
local_set.add(phone)
return list(local_set)
# 示例:生成 10 个不重复的
unique = generate_unique_phones(set(), 10)
print(unique)
扩展思路:生成指定运营商的号码(验证、测试)
# 只生成移动号段
mobile_prefixes = ["134", "135", "136", "137", "138", "139", "150", "151", "152", "157", "158", "159", "188", "187", "182", "183", "184", "178"]
def generate_mobile():
prefix = random.choice(mobile_prefixes)
suffix = ''.join(random.choices('0123456789', k=8))
return prefix + suffix
为什么生成的号码可能是“无效”的?
- 运营商未放号:很多号段虽然存在,但部分号码并未分配给用户。
- 无法接打电话:生成的号码大概率是空号,无法收到验证码,只能用来填充数据库、测试前端输入限制、做演示数据。
工具推荐(无需写代码)
如果你不会编程,可以使用在线网站生成,搜索“在线手机号生成器”,不过要注意输入输出格式,并且警惕隐私泄露风险。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播