运营商手机号归属地查询

三大运营商归属地查询,手机号类型查询,直接上代码
1.关键jar包
carrier-1.73.jar
geocoder-2.83.jar
libphonenumber-8.8.6.jar

prefixmapper-2.83.jar

2.jar更新地址
http://mvnrepository.com/artifact/com.googlecode.libphonenumber
jar包更新挺及时的,完全满足业务,总比淘宝买数据库实用。

3.demo
/**
   * 判断手机号是否归属设定省份, 属于返回 true, 不属于 返回false
   * @param phoneNum 手机号
   * @param ascription 省份名称:山西
   * @return
   */
  public boolean isAvailablePhoneNumber(String phoneNum, String ascription){
      boolean result = false;
      if(phoneNum == null || phoneNum.equals("") || ascription == null || ascription.equals("")){
          return result;
      }
      String referenceRegion = getReferenceRegion(phoneNum);
      if(referenceRegion != null && referenceRegion.contains(ascription)){
          result = true;
      }
      return result;
   }

  /**
   * 判断手机号所属运营商
   * @param phoneNum 手机号
   * @return
   */
  public String getCarrier(String phoneNum){
      PhoneNumberToCarrierMapper carrierMapper = PhoneNumberToCarrierMapper.getInstance();
      long phone = Long.valueOf(phoneNum);
      PhoneNumber pn = new PhoneNumber();
      pn.setCountryCode(86);
      pn.setNationalNumber(phone);
      String carrierZh = "";
      String carrierEn = carrierMapper.getNameForNumber(pn, Locale.ENGLISH);
      if(carrierEn.equals("China Mobile")){//移动
          carrierZh = "1";
      }else if(carrierEn.equals("China Unicom")){//联通
          carrierZh = "2";
      }else if(carrierEn.equals("China Telecom")){//电信
          carrierZh = "3";
      }
      return carrierZh;
  }

  /**
   * 获取手机号归属地
   * @param phoneNum
   * @return
   */
  public String getReferenceRegion(String phoneNum){
      PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
      PhoneNumberOfflineGeocoder geocoder = PhoneNumberOfflineGeocoder.getInstance();
      String language = "CN";
      PhoneNumber referencePhonenumber = null;
      String referenceRegion = "";
      try {
          referencePhonenumber = phoneUtil.parse(phoneNum, language);
          // 手机号码归属城市 referenceRegion
          referenceRegion = geocoder.getDescriptionForNumber(referencePhonenumber, Locale.CHINA);
      } catch (NumberParseException e) {
          e.printStackTrace();
      }
      return referenceRegion;
  }

  希望能够帮助到你

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值