查手机归属地信息
目前在网上找了很久发现查归属地的开方接口有以下三个,经测试后发现第三种更适合查归属地
- http://www.ip138.com/ 能查省市
- https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15689736537 只能查省份
- http://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel=15689736537 能查省市
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;
import java.util.List;
/**
* @author ssm
* @version V1.0
* @description: 调用百度归属地查询API获取手机号归属地
* @date 2019/12/26 16:15
*/
@Slf4j
public class PhoneUtils {
public static PhoneRetBean parseAddressFromPhone(String phone) {
if (!PhoneFormatCheckUtils.checkMobile(phone)) {
log.error("PhoneUtils#getAddressFromPhone:[{}],手机号验证不通过!", phone);
return null;
}
try {
// 两个参数 手机号、当前时间戳
String url = "http://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel=%s";
url = String.format(url, phone);
String s = HttpUtil.get(url);
if (log.isDebugEnabled()){
log.debug(s);
}
return JSON.parseObject(s).getJSONObject("response").getObject(phone, new TypeReference<PhoneRetBean>() {
});
} catch (Exception e) {
log.error("PhoneUtils#getAddressFromPhone:[{}],调用百度归属地查询接口出错!", phone, e);
return null;
}
}
/**
* 批量获取
* @param phones
* @return
*/
public static Map<String,PhoneRetBean> getAddressFromPhones(String... phones) {
try {
// 两个参数 手机号、当前时间戳
String url = "http://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel=%s";
url = String.format(url, StringUtils.join(phones,","));
String s = HttpUtil.get(url);
if (log.isDebugEnabled()) {
log.debug(s);
}
return JSON.parseObject(s).getObject("response",new TypeReference<Map<String,PhoneRetBean>>(){});
} catch (Exception e) {
log.error("PhoneUtils#getAddressFromPhone:[{}],调用百度归属地查询接口出错!", phones, e);
return new HashMap<>();
}
}
// just4test
public static void main(String[] args) {
PhoneRetBean retBean = PhoneUtils.getAddressFromPhone("15280851911");
log.info(retBean.toString());
}
/**
* @author ssm
* @version V1.0
* @description:
* @date 2019/12/26 16:34
*/
@NoArgsConstructor
@Data
public static class PhoneRetBean {
private DetailBean detail;
/**
* location : 福建泉州移动
* detail : {"area":[{"city":"泉州"}],"province":"福建","type":"domestic","operator":"移动"}
*/
private String location;
@NoArgsConstructor
@Data
public static class DetailBean {
private List<AreaBean> area;
private String operator;
/**
* area : [{"city":"泉州"}]
* province : 福建
* type : domestic
* operator : 移动
*/
private String province;
private String type;
@NoArgsConstructor
@Data
public static class AreaBean {
/**
* city : 泉州
*/
private String city;
}
}
}
}
网友评论