手机号归属地查询
提供手机号归属地查询,精准定位国内手机号所属省份、城市及运营商等信息,助力通讯类应用集成号码归属数据
套餐
普通会员
100次/天
VIP会员
月:5000次/天
高级VIP
月:11000次/天
钻石VIP
月:14000次/天

https://api.slsj.com/api/ref/mobile-number-region
{
  "code": 0,
  "msg": "操作成功",
  "result": {
    "areaCode": 451300,
    "city": "来宾",
    "cityCode": 772,
    "createTime": "2025-06-23 10:01:45",
    "isp": "移动",
    "orderId": "20250623100144634",
    "orderNumber": "512025062310000000798551",
    "phone": 1827670,
    "postCode": 546100,
    "province": "广西"
  }
}{
    "code": 400,
    "msg": "业务处理失败,请稍侯重试",
    "result": null
}package com.example.api.V106;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import static org.junit.jupiter.api.Assertions.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.util.*;
import java.util.stream.Collectors;
import java.util.Base64;
public class ApiTest1060 {
    // 签名相关的常量
    private static final String SIGN_KEY = "XXXXX"; // 替换为实际的签名密钥
    private static final String USER_ID = "XXXXXX"; // 替换为实际的用户编号
    public static void main(String[] args) throws Exception {
        String apiUrl = "https://api.slsj.com/api/ref/mobile-number-region";
        String orderId = "1060001";
        String mobile = "13380623637";
        // 准备请求参数
        Map<String, Object> params = new HashMap<>();
        params.put("orderId", orderId);
        params.put("mobile", mobile);
        testVerification(apiUrl, params);
    }
    // 获取Auth_Token的方法
    private static String getAuthToken() throws Exception {
        // 获取当前时间戳
        long timestamp = System.currentTimeMillis();
        // 按照文档拼接待加密字符串
        String toEncrypt = "memberId=" + USER_ID + "dateTime=" + timestamp + "version=v1" + "key=" + SIGN_KEY;
        // MD5加密
        MessageDigest md = MessageDigest.getInstance("MD5");
        byte[] digest = md.digest(toEncrypt.getBytes(StandardCharsets.UTF_8));
        String md5Result = bytesToHex(digest).toLowerCase();
        // 创建鉴权Token的JSON对象
        JSONObject authTokenObj = new JSONObject();
        authTokenObj.set("memberId", USER_ID);
        authTokenObj.set("dateTime", timestamp);
        authTokenObj.set("version", "v1");
        authTokenObj.set("signMd5", md5Result);
        
        String authToken = authTokenObj.toString();
        return authToken;
    }
    // 辅助方法:将字节数组转换为十六进制字符串
    private static String bytesToHex(byte[] bytes) {
        StringBuilder result = new StringBuilder();
        for (byte b : bytes) {
            result.append(String.format("%02x", b));
        }
        return result.toString();
    }
    public static void testVerification(String apiUrl,Map<String, Object> params) throws Exception {
        // 获取鉴权Token
        String authToken = getAuthToken();
        
        // 发送请求
        HttpResponse response = HttpRequest.post(apiUrl)
            .header("Content-Type", "application/x-www-form-urlencoded")
            .header("Auth_Token", authToken)
            .header("Sign_Type", "md5")
            .form(params)
            .execute();
        
        // 输出响应结果
        int status = response.getStatus();
        String responseBody = response.body();
        
        System.out.println("响应状态码: " + status);
        System.out.println("响应内容: " + responseBody);
        
        // 验证响应码
        assertEquals(HttpURLConnection.HTTP_OK, status, "Response code should be 200");
        
        // 解析响应内容(假设响应是JSON格式)
        // JSONObject responseJson = JSONUtil.parseObj(responseBody);
    }
} 代码信息正在添加中...import hashlib
import json
import time
import requests
# 用户ID和密钥
user_id = "xxxxxx"  # 替换为实际的用户编号
signature_key = "xxxxxxxxxxxxxxx"   # 替换为实际的签名密钥
# 版本号
version = "v1"
# 生成加密签名
def generate_auth_token():
    query_time = int(time.time() * 1000)
    original_string = f'memberId={user_id}dateTime={query_time}version={version}key={signature_key}'
    md5_result = hashlib.md5(original_string.encode('utf-8')).hexdigest()
    auth_token = {
        "memberId": user_id,
        "dateTime": query_time,
        "version": version,
        "signMd5": md5_result
    }
    return auth_token
# 请求接口并打印响应结果
request_url = 'https://api.slsj.com/api/ref/mobile-number-region'
params = {
    "orderId": "20250416094659001",
    "mobile": "18212341234"
}
headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Auth_Token': json.dumps(generate_auth_token()),
           'Sign_Type': 'md5'}
response = requests.post(headers=headers, url=request_url, data=params)
if response.status_code == 200:
    print(response.json())
else:
    print(response.text)代码信息正在添加中...手机号归属地查询
ID:656
申请次数
32
收藏次数
29
认证要求
场景审核
联系电话:
400-000-6665
联系邮箱:
suilian@suiliantech.com
在线客服:
