快递小哥查空号
下午三点,快递员小王手头有 30 个包裹要派,拨通第四个号码时听到空号提示。按经验,这种号可能是用户刚换号、停机保号或携号转网导致的临时故障。他用本工具查该手机号的归属运营商和归属地,发现号码是广东联通,而收件地址在浙江。判断是用户已换号但未更新地址,直接标记为「联系不上」并返回站点,省去了反复拨打和上门扑空的 20 分钟。
收到一条陌生来电,号段是 170,心里先打个问号——是推销还是诈骗?把号码前七位输进去,工具返回运营商(虚拟运营商)、归属地(归属地可能为空或不准确)和卡类型(如物联网卡)。170/171 号段归属地信息由工信部统一分配,不按传统行政区划,所以查出来是空的也正常。
下午三点,快递员小王手头有 30 个包裹要派,拨通第四个号码时听到空号提示。按经验,这种号可能是用户刚换号、停机保号或携号转网导致的临时故障。他用本工具查该手机号的归属运营商和归属地,发现号码是广东联通,而收件地址在浙江。判断是用户已换号但未更新地址,直接标记为「联系不上」并返回站点,省去了反复拨打和上门扑空的 20 分钟。
反诈中心收到一条预警:有群众接到自称「上海通信管理局」的电话,对方报出的手机号归属地显示为上海。民警用本工具反查该号码,发现其号段归属地实际为广西南宁,且运营商为虚拟运营商(170 号段)。立即确认这是改号软件伪造的诈骗电话,通过辖区派出所上门劝阻,在转账前 3 分钟拦住了 8 万元。
新员工小张入职材料上留的手机号归属地显示为北京,但小张本人户籍在湖南、面试在深圳。HR 用本工具查该号段,发现是北京联通 186 号段的老号,且卡类型为「标准预付费卡」。结合号段发放时间(2010 年前),判断这是小张大学在北京办的「养号」,非临时号码,入职后作为主要联络号可信度高,无需额外核验。
闲鱼卖家挂出一台 iPhone 15,声称是自用一手,留的联系手机号归属地显示为上海。买家有意,但发现该号段(199)是 2019 年才放号的,且运营商为中国广电。广电号段多为物联网卡或宽带融合套餐附赠号,极少用于个人主力机。买家据此推断该卖家大概率是倒卖商而非自用用户,放弃交易,避免了后续纠纷。
电销团队每天外呼 2000 个号码,接通率长期低于 15%。组长用本工具批量筛查号段,发现大量 170/171 虚拟运营商号段和 167 联通转售号段,这些号段因资费低、换号成本几乎为零,空号率和拒接率超过 60%。团队随即从外呼名单中剔除这些号段,并将预算集中投放到 139/138 等 2000 年前后放号的「高粘性号段」,次月接通率升至 28%。
| 维度 | 本工具 | 在线归属地查询站 | 运营商客服 / 手工查 |
|---|---|---|---|
| 查询速度 | 即时返回(后端 Go 处理) | 依赖页面加载 + 网络请求,通常 1-3 秒 | 需人工查号或等待客服,分钟级 |
| 隐私 | 查询记录不留存,仅处理输入号 | 部分站会记录 IP / 查询历史用于分析 | 需告知完整手机号给人工,隐私风险高 |
| 批量查询 | 单次输入一个号,专注精准 | 多数限单次查询,少数需登录或付费批量 | 一次只能查一个,效率极低 |
| 数据覆盖 | 运营商 / 省市 / 卡类型(含虚拟运营商) | 部分站只显示运营商,不区分省市或虚拟号 | 客服可查完整信息但受限于内部系统 |
| 收费 | 免费,无隐藏限制 | 免费站有广告或查询次数限制;付费站按次收费 | 免费但需通话时间 |
| 离线可用 | 需联网(后端处理) | 需联网 | 完全离线但依赖人工 |
| 输入 | 输出 | 说明 |
|---|---|---|
| 13800138000 | 运营商:中国移动 / 归属地:北京市 / 卡类型:全球通 | 常规:北京移动经典号段,验证基本查询功能是否正常返回运营商、省市和卡类型三项信息。 |
| 18912345678 | 运营商:中国电信 / 归属地:上海市 / 卡类型:天翼 | 常规:上海电信号段,覆盖另一主流运营商,确保多运营商支持。 |
| 13000000000 | 运营商:中国联通 / 归属地:未知 / 卡类型:如意通 | 边界:号段存在但号段内无对应省份数据,归属地返回'未知',验证工具对不完整数据的处理。 |
| 10086 | 错误:输入不是11位手机号码 | 边界:输入长度不足11位(客服号码),工具应明确提示格式错误,而非尝试查询。 |
| 1380013800X | 错误:输入包含非数字字符 | 边界:输入含字母,验证工具对非法字符的校验逻辑。 |
| 17000000001 | 运营商:中国联通 / 归属地:广东省深圳市 / 卡类型:虚拟运营商 | 易错:170号段为虚拟运营商,用户常误以为归属传统运营商,本示例暴露虚拟运营商识别能力。 |
| 19800000000 | 运营商:中国移动 / 归属地:北京市 / 卡类型:4G套餐卡 | 易错:198号段为较新号段(2017年启用),验证工具是否及时更新号段库,避免返回'未知'。 |
| 8613800138000 | 错误:输入不是11位手机号码(含国际前缀) | 易错:用户可能误加国际代码'86',工具应提示格式问题而非自动截取,避免误导。 |
1.输入了非 11 位手机号
138001380013800138000中国大陆手机号固定 11 位,少一位或多一位均无法匹配运营商号段库,工具会返回空结果或错误提示。
2.输入了座机号或短号
010-1234567813912345678本工具仅支持 11 位手机号段查询,座机、400、95 等号码不在号段数据库范围内,查询结果无意义。
3.号段已废弃但仍在用旧号
13012345678(实际是联通,但用户怀疑是移动)直接输入完整号码,工具返回运营商130 号段始终属于联通,不存在“以前是移动”的情况。号段归属由工信部分配,历史变更极少,用户不必自行猜测。
4.输入了非中国大陆号码
+852 6123456713800138000工具数据库仅收录中国大陆(86)号段。港澳台及国际号码格式不同、号段规则独立,无法查询。
5.输入了虚拟运营商号段但期望三大运营商
17012345678(用户以为是联通)输入后工具会显示“虚拟运营商”170/171 等号段属于虚拟运营商(如阿里通信、小米移动),不归入传统三大运营商,工具会返回正确分类。
6.查询后误解“卡类型”含义
输入 18812345678,看到“中国移动”后问“是 4G 卡还是 5G 卡?”卡类型仅指 SIM 卡物理形态(标准卡 / Micro-SIM / Nano-SIM),与网络制式无关工具返回的“卡类型”依据号段发行时的 SIM 卡规格,不反映当前用户使用的网络技术(4G/5G)。
7.输入了已销户或空号
13800138000(已停机销号)输入仍在用的号码工具仅根据号段前 7 位判断归属,不校验号码当前是否在用。销户号段仍会返回原归属信息,这是号段查询的固有局限。
归属地 = 前7位 → 号段数据库 → 运营商 + 省份 + 城市 + 卡类型
前7位手机号前7位数字,如1381234号段数据库工信部备案的号段归属映射表运营商移动/联通/电信/广电省份号段注册所属省份城市号段注册所属城市卡类型如普通SIM、物联网卡、虚拟运营商输入手机号 13812345678,取前7位 1381234。查询号段数据库:1381234 归属中国移动,省份广东,城市广州,卡类型为普通SIM卡。输出:中国移动·广东广州·普通SIM。
5 种主流语言实现,复制即用:
import requests
def query_phone(phone: str) -> dict:
"""查询手机号归属地,返回运营商、省市、卡类型"""
url = f"https://api.quanbao5.com/shenghuo/shouji-guishu?phone={phone}"
try:
resp = requests.get(url, timeout=5)
resp.raise_for_status()
data = resp.json()
# 假设返回格式:{"province": "广东", "city": "深圳", "isp": "中国移动", "card_type": "移动4G"}
return {
"province": data.get("province", ""),
"city": data.get("city", ""),
"isp": data.get("isp", ""),
"card_type": data.get("card_type", "")
}
except requests.RequestException as e:
return {"error": str(e)}
# 示例
print(query_phone("13800138000")) # 输出: {'province': '广东', 'city': '深圳', 'isp': '中国移动', 'card_type': '移动4G'}async function queryPhone(phone) {
const url = `https://api.quanbao5.com/shenghuo/shouji-guishu?phone=${phone}`;
try {
const resp = await fetch(url);
if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
const data = await resp.json();
// 假设返回:{ province: '广东', city: '深圳', isp: '中国移动', card_type: '移动4G' }
return {
province: data.province || '',
city: data.city || '',
isp: data.isp || '',
cardType: data.card_type || ''
};
} catch (err) {
return { error: err.message };
}
}
// 示例
queryPhone('13800138000').then(console.log); // { province: '广东', city: '深圳', isp: '中国移动', cardType: '移动4G' }package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
)
type PhoneResult struct {
Province string `json:"province"`
City string `json:"city"`
ISP string `json:"isp"`
CardType string `json:"card_type"`
}
func queryPhone(phone string) (*PhoneResult, error) {
url := fmt.Sprintf("https://api.quanbao5.com/shenghuo/shouji-guishu?phone=%s", phone)
resp, err := http.Get(url)
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
return nil, err
}
var result PhoneResult
if err := json.Unmarshal(body, &result); err != nil {
return nil, err
}
return &result, nil
}
func main() {
result, err := queryPhone("13800138000")
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Printf("%+v\n", result) // &{Province:广东 City:深圳 ISP:中国移动 CardType:移动4G}
}#!/bin/bash
# 依赖 curl 和 jq(用于 JSON 解析)
phone="13800138000"
url="https://api.quanbao5.com/shenghuo/shouji-guishu?phone=$phone"
response=$(curl -s "$url")
if [ $? -ne 0 ]; then
echo "请求失败"
exit 1
fi
echo "省份: $(echo $response | jq -r '.province')"
echo "城市: $(echo $response | jq -r '.city')"
echo "运营商: $(echo $response | jq -r '.isp')"
echo "卡类型: $(echo $response | jq -r '.card_type')"
# 输出示例:
# 省份: 广东
# 城市: 深圳
# 运营商: 中国移动
# 卡类型: 移动4G<?php
function queryPhone(string $phone): array {
$url = "https://api.quanbao5.com/shenghuo/shouji-guishu?phone=" . urlencode($phone);
$context = stream_context_create(['http' => ['timeout' => 5]]);
$response = @file_get_contents($url, false, $context);
if ($response === false) {
return ['error' => '请求失败'];
}
$data = json_decode($response, true);
// 假设返回:{ province: '广东', city: '深圳', isp: '中国移动', card_type: '移动4G' }
return [
'province' => $data['province'] ?? '',
'city' => $data['city'] ?? '',
'isp' => $data['isp'] ?? '',
'card_type'=> $data['card_type'] ?? ''
];
}
print_r(queryPhone('13800138000'));
// 输出:Array ( [province] => 广东 [city] => 深圳 [isp] => 中国移动 [card_type] => 移动4G )
?>可以。170号段属于虚拟运营商(如阿里通信、京东通信等),具体归属地(省市)和运营商(如移动/联通/电信)仍能查到。但虚拟运营商的号段资源分配较复杂,部分170号段可能显示为“虚拟运营商”而非具体名称,归属地信息通常准确。直接输入完整11位号码查询即可。
手机号的前三位(号段)决定了其初始归属运营商,但用户可以通过携号转网更换运营商。本工具查询的是号段对应的原始运营商信息,无法反映携号转网后的当前运营商。如果号码已转网,结果会显示原始运营商(如移动),而实际在用可能是联通或电信。
不能。本工具仅返回省级和市级信息(如“广东省广州市”),不提供区、街道、小区等更细粒度位置。手机号归属地信息由工信部按号段分配,粒度只到地级市。如需精确位置,需运营商内部系统或公安机关授权,普通在线工具无法实现。
会。本工具通过后端服务器(BE)处理查询,输入的手机号会发送到服务器进行数据库匹配,不会存储或记录。查询结果仅返回运营商和归属地,不保留任何个人身份信息(如姓名、身份证)。建议不要在公共设备上查询敏感号码。
手机号归属地由号段分配决定,与实际办卡城市可能不一致。例如,北京移动的某些号段可能分配给其他省市使用,或运营商跨区域放号。本工具返回的是号段在工信部备案的原始归属地,并非你办卡时的实际城市。如果差异较大,可能是号码已过户或号段重新分配。
能。本工具支持识别中国移动、中国联通、中国电信三大运营商,以及虚拟运营商(如170/171号段)。查询结果会明确显示“移动”、“联通”、“电信”或“虚拟运营商”。部分特殊号段(如166、199等)也能准确识别。直接输入号码即可获得运营商信息。
本工具只接受中国大陆11位手机号码,且必须以1开头。常见错误包括:输入了固话号码(如010-xxxxxxx)、手机号包含空格或横线(如138 0013 8000)、号码不足11位、或含有非数字字符。请确保输入纯数字的11位手机号,无需加任何前缀或分隔符。
不能。手机号归属地工具仅查询号段的运营商和归属地信息,不包含卡类型(预付费/后付费)、套餐内容、余额等数据。这些信息属于运营商内部的用户账户数据,不对外开放查询。如需了解卡类型,需联系对应运营商客服。
隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。