生活工具 · 证件号码

手机归属地

手机号→运营商/省市/卡类型

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 72 次使用
手机号归属地查询 phone lookup · 纯本地解析 前 3 位定运营商 · 前 7 位定归属地
所有解析均在您的浏览器本地完成:手机号不上传任何服务器、不写日志、不存 localStorage。本工具仅做格式校验(11 位 / 1 开头 / 第 2 位 3-9)和号段归属推断(运营商 + 7 位号段省市),不查询真实开户人信息——任何宣称能反查机主姓名的服务均涉嫌违法。
输入 11 位中国大陆手机号(自动忽略空格 / 分隔符 / +86 前缀)
结构:1 + 第 2 位 3-9 + 3 位号段 + 7 位个人号 前 7 位决定归属地(地级市)
就绪 · 输入手机号即时解析归属地与运营商
第一节

关于本工具

About

收到一条陌生来电,号段是 170,心里先打个问号——是推销还是诈骗?把号码前七位输进去,工具返回运营商(虚拟运营商)、归属地(归属地可能为空或不准确)和卡类型(如物联网卡)。170/171 号段归属地信息由工信部统一分配,不按传统行政区划,所以查出来是空的也正常。

使用场景

快递小哥查空号

下午三点,快递员小王手头有 30 个包裹要派,拨通第四个号码时听到空号提示。按经验,这种号可能是用户刚换号、停机保号或携号转网导致的临时故障。他用本工具查该手机号的归属运营商和归属地,发现号码是广东联通,而收件地址在浙江。判断是用户已换号但未更新地址,直接标记为「联系不上」并返回站点,省去了反复拨打和上门扑空的 20 分钟。

反诈民警筛风险号

反诈中心收到一条预警:有群众接到自称「上海通信管理局」的电话,对方报出的手机号归属地显示为上海。民警用本工具反查该号码,发现其号段归属地实际为广西南宁,且运营商为虚拟运营商(170 号段)。立即确认这是改号软件伪造的诈骗电话,通过辖区派出所上门劝阻,在转账前 3 分钟拦住了 8 万元。

HR 核对异地入职

新员工小张入职材料上留的手机号归属地显示为北京,但小张本人户籍在湖南、面试在深圳。HR 用本工具查该号段,发现是北京联通 186 号段的老号,且卡类型为「标准预付费卡」。结合号段发放时间(2010 年前),判断这是小张大学在北京办的「养号」,非临时号码,入职后作为主要联络号可信度高,无需额外核验。

二手平台验机主

闲鱼卖家挂出一台 iPhone 15,声称是自用一手,留的联系手机号归属地显示为上海。买家有意,但发现该号段(199)是 2019 年才放号的,且运营商为中国广电。广电号段多为物联网卡或宽带融合套餐附赠号,极少用于个人主力机。买家据此推断该卖家大概率是倒卖商而非自用用户,放弃交易,避免了后续纠纷。

保险电销排雷

电销团队每天外呼 2000 个号码,接通率长期低于 15%。组长用本工具批量筛查号段,发现大量 170/171 虚拟运营商号段和 167 联通转售号段,这些号段因资费低、换号成本几乎为零,空号率和拒接率超过 60%。团队随即从外呼名单中剔除这些号段,并将预算集中投放到 139/138 等 2000 年前后放号的「高粘性号段」,次月接通率升至 28%。

对比矩阵

维度本工具在线归属地查询站运营商客服 / 手工查
查询速度即时返回(后端 Go 处理)依赖页面加载 + 网络请求,通常 1-3 秒需人工查号或等待客服,分钟级
隐私查询记录不留存,仅处理输入号部分站会记录 IP / 查询历史用于分析需告知完整手机号给人工,隐私风险高
批量查询单次输入一个号,专注精准多数限单次查询,少数需登录或付费批量一次只能查一个,效率极低
数据覆盖运营商 / 省市 / 卡类型(含虚拟运营商)部分站只显示运营商,不区分省市或虚拟号客服可查完整信息但受限于内部系统
收费免费,无隐藏限制免费站有广告或查询次数限制;付费站按次收费免费但需通话时间
离线可用需联网(后端处理)需联网完全离线但依赖人工
第二节

使用指南

Getting Started

使用步骤

  1. 1在输入框粘贴或键入 11 位手机号(如 13800138000),系统自动过滤空格与短横
  2. 2点击「查询」按钮,结果区立即显示运营商名称(移动/联通/电信)与归属省份
  3. 3展开结果卡片下方的「详细信息」,查看城市、区号、邮编及 SIM 卡类型(预付费/后付费)
  4. 4点击结果旁的「复制」图标,一键将运营商+省份+城市文本存入剪贴板

输入输出示例

输入输出说明
13800138000运营商:中国移动 / 归属地:北京市 / 卡类型:全球通常规:北京移动经典号段,验证基本查询功能是否正常返回运营商、省市和卡类型三项信息。
18912345678运营商:中国电信 / 归属地:上海市 / 卡类型:天翼常规:上海电信号段,覆盖另一主流运营商,确保多运营商支持。
13000000000运营商:中国联通 / 归属地:未知 / 卡类型:如意通边界:号段存在但号段内无对应省份数据,归属地返回'未知',验证工具对不完整数据的处理。
10086错误:输入不是11位手机号码边界:输入长度不足11位(客服号码),工具应明确提示格式错误,而非尝试查询。
1380013800X错误:输入包含非数字字符边界:输入含字母,验证工具对非法字符的校验逻辑。
17000000001运营商:中国联通 / 归属地:广东省深圳市 / 卡类型:虚拟运营商易错:170号段为虚拟运营商,用户常误以为归属传统运营商,本示例暴露虚拟运营商识别能力。
19800000000运营商:中国移动 / 归属地:北京市 / 卡类型:4G套餐卡易错:198号段为较新号段(2017年启用),验证工具是否及时更新号段库,避免返回'未知'。
8613800138000错误:输入不是11位手机号码(含国际前缀)易错:用户可能误加国际代码'86',工具应提示格式问题而非自动截取,避免误导。

常见错误对照

1.输入了非 11 位手机号

✗ 错误1380013800
✓ 修复13800138000

中国大陆手机号固定 11 位,少一位或多一位均无法匹配运营商号段库,工具会返回空结果或错误提示。

2.输入了座机号或短号

✗ 错误010-12345678
✓ 修复13912345678

本工具仅支持 11 位手机号段查询,座机、400、95 等号码不在号段数据库范围内,查询结果无意义。

3.号段已废弃但仍在用旧号

✗ 错误13012345678(实际是联通,但用户怀疑是移动)
✓ 修复直接输入完整号码,工具返回运营商

130 号段始终属于联通,不存在“以前是移动”的情况。号段归属由工信部分配,历史变更极少,用户不必自行猜测。

4.输入了非中国大陆号码

✗ 错误+852 61234567
✓ 修复13800138000

工具数据库仅收录中国大陆(86)号段。港澳台及国际号码格式不同、号段规则独立,无法查询。

5.输入了虚拟运营商号段但期望三大运营商

✗ 错误17012345678(用户以为是联通)
✓ 修复输入后工具会显示“虚拟运营商”

170/171 等号段属于虚拟运营商(如阿里通信、小米移动),不归入传统三大运营商,工具会返回正确分类。

6.查询后误解“卡类型”含义

✗ 错误输入 18812345678,看到“中国移动”后问“是 4G 卡还是 5G 卡?”
✓ 修复卡类型仅指 SIM 卡物理形态(标准卡 / Micro-SIM / Nano-SIM),与网络制式无关

工具返回的“卡类型”依据号段发行时的 SIM 卡规格,不反映当前用户使用的网络技术(4G/5G)。

7.输入了已销户或空号

✗ 错误13800138000(已停机销号)
✓ 修复输入仍在用的号码

工具仅根据号段前 7 位判断归属,不校验号码当前是否在用。销户号段仍会返回原归属信息,这是号段查询的固有局限。

第三节

工作原理

How It Works

核心公式

归属地 = 前7位 → 号段数据库 → 运营商 + 省份 + 城市 + 卡类型

变量说明

  • 前7位手机号前7位数字,如1381234
  • 号段数据库工信部备案的号段归属映射表
  • 运营商移动/联通/电信/广电
  • 省份号段注册所属省份
  • 城市号段注册所属城市
  • 卡类型如普通SIM、物联网卡、虚拟运营商

示例

输入手机号 13812345678,取前7位 1381234。查询号段数据库:1381234 归属中国移动,省份广东,城市广州,卡类型为普通SIM卡。输出:中国移动·广东广州·普通SIM。

输入手机号提取号段(前 3-7 位)号段库匹配(运营商 / 归属地)返回结果校验号码合法性不合法则提示
输入 / 输出 处理环节 数据匹配
第四节

开发者集成

For Developers

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 ) ?>
第五节

常见问题

Q & A
我有个170开头的手机号,能查出来是哪里的吗?

可以。170号段属于虚拟运营商(如阿里通信、京东通信等),具体归属地(省市)和运营商(如移动/联通/电信)仍能查到。但虚拟运营商的号段资源分配较复杂,部分170号段可能显示为“虚拟运营商”而非具体名称,归属地信息通常准确。直接输入完整11位号码查询即可。

为什么我查到的运营商跟我实际用的不一样?

手机号的前三位(号段)决定了其初始归属运营商,但用户可以通过携号转网更换运营商。本工具查询的是号段对应的原始运营商信息,无法反映携号转网后的当前运营商。如果号码已转网,结果会显示原始运营商(如移动),而实际在用可能是联通或电信。

手机号归属地能查到具体街道或小区吗?

不能。本工具仅返回省级和市级信息(如“广东省广州市”),不提供区、街道、小区等更细粒度位置。手机号归属地信息由工信部按号段分配,粒度只到地级市。如需精确位置,需运营商内部系统或公安机关授权,普通在线工具无法实现。

这个查询会把我的手机号上传到服务器吗?隐私安全吗?

会。本工具通过后端服务器(BE)处理查询,输入的手机号会发送到服务器进行数据库匹配,不会存储或记录。查询结果仅返回运营商和归属地,不保留任何个人身份信息(如姓名、身份证)。建议不要在公共设备上查询敏感号码。

为什么查出来的归属地跟我手机号办卡的城市不一样?

手机号归属地由号段分配决定,与实际办卡城市可能不一致。例如,北京移动的某些号段可能分配给其他省市使用,或运营商跨区域放号。本工具返回的是号段在工信部备案的原始归属地,并非你办卡时的实际城市。如果差异较大,可能是号码已过户或号段重新分配。

一个手机号能查出来它是移动、联通还是电信的卡?

能。本工具支持识别中国移动、中国联通、中国电信三大运营商,以及虚拟运营商(如170/171号段)。查询结果会明确显示“移动”、“联通”、“电信”或“虚拟运营商”。部分特殊号段(如166、199等)也能准确识别。直接输入号码即可获得运营商信息。

查询时提示“号码格式错误”是怎么回事?

本工具只接受中国大陆11位手机号码,且必须以1开头。常见错误包括:输入了固话号码(如010-xxxxxxx)、手机号包含空格或横线(如138 0013 8000)、号码不足11位、或含有非数字字符。请确保输入纯数字的11位手机号,无需加任何前缀或分隔符。

这个工具能查出手机号是预付费卡还是后付费卡吗?

不能。手机号归属地工具仅查询号段的运营商和归属地信息,不包含卡类型(预付费/后付费)、套餐内容、余额等数据。这些信息属于运营商内部的用户账户数据,不对外开放查询。如需了解卡类型,需联系对应运营商客服。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭