`

获取手机号码归属地

    博客分类:
  • java
 
阅读更多
import java.util.regex.Matcher;  
import java.util.regex.Pattern;  
  
import org.apache.commons.httpclient.HttpClient;  
import org.apache.commons.httpclient.NameValuePair;  
import org.apache.commons.httpclient.methods.PostMethod;  
import org.apache.commons.httpclient.params.HttpMethodParams;  
/** 
 * 通过手机号码,获得该号码的归属地 
 *  
 * @author Administrator 
 * 
 */  
public class MobileFromUtil {  
    //正则表达式,抽取手机归属地  
    public static final String REGEX_GET_MOBILE=  
        "(?is)(<tr[^>]+>[\\s]*<td[^>]+>[\\s]*卡号归属地[\\s]*</td>[\\s]*<td[^>]+>([^<]+)</td>[\\s]*</tr>)"; //2:from  
    //正则表达式,审核要获取手机归属地的手机是否符合格式,可以只输入手机号码前7位  
    public static final String REGEX_IS_MOBILE=  
        "(?is)(^1[3|4|5|8][0-9]\\d{4,8}$)";  
      
    /** 
     * 获得手机号码归属地 
     *  
     * @param mobileNumber 
     * @return 
     * @throws Exception 
     */  
    public static String getMobileFrom(String mobileNumber) throws Exception {  
        if(!veriyMobile(mobileNumber)){  
            throw new Exception("不是完整的11位手机号或者正确的手机号前七位");  
        }  
        HttpClient client=null;  
        PostMethod method=null;  
        NameValuePair mobileParameter=null;  
        NameValuePair actionParameter=null;  
        int httpStatusCode;  
          
        String htmlSource=null;  
        String result=null;  
          
          
        try {  
            client=new HttpClient();  
            client.getHostConfiguration().setHost("www.ip138.com", 8080, "http");  
            method=new PostMethod("/search.asp");  
            mobileParameter=new NameValuePair("mobile",mobileNumber);  
            actionParameter=new NameValuePair("action","mobile");  
            method.setRequestBody(new NameValuePair[] { actionParameter,mobileParameter });   
            //设置编码  
            method.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "GB2312");  
              
            client.executeMethod(method);  
            httpStatusCode=method.getStatusLine().getStatusCode();  
            if(httpStatusCode!=200){  
                throw new Exception("网页内容获取异常!Http Status Code:"+httpStatusCode);  
            }  
              
            htmlSource=method.getResponseBodyAsString();  
            if(htmlSource!=null&&!htmlSource.equals("")){  
                result=parseMobileFrom(htmlSource);  
            }  
        } catch (RuntimeException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }finally{  
            method.releaseConnection();  
        }  
          
        return result;  
          
    }  
  
  
    /** 
     * 从www.ip138.com返回的结果网页内容中获取手机号码归属地,结果为:省份 城市 
     *  
     * @param htmlSource 
     * @return 
     */  
    public static String parseMobileFrom(String htmlSource){  
        Pattern p=null;  
        Matcher m=null;  
        String result=null;  
          
        p=Pattern.compile(REGEX_GET_MOBILE);  
        m=p.matcher(htmlSource);  
          
        while(m.find()){  
            if(m.start(2)>0){  
                result=m.group(2);  
                result=result.replaceAll("&nbsp;", " ");  
            }  
        }  
          
          
        return result;  
          
    }  
      
    /** 
     * 验证手机号 
     * @param mobileNumber 
     * @return 
     */  
    public static boolean veriyMobile(String mobileNumber){  
        Pattern p=null;  
        Matcher m=null;  
          
        p=Pattern.compile(REGEX_IS_MOBILE);  
        m=p.matcher(mobileNumber);  
          
        return m.matches();  
    }  
      
    /** 
     * 测试 
     * @param args 
     * @throws Exception  
     */  
    public static void main(String[] args) throws Exception {  
        System.out.println(getMobileFrom("13888888888"));  
    }  
  
}  

 

分享到:
评论

相关推荐

    Android获取手机号码归属地

    在Android平台上,获取手机号码归属地是一项常见的需求,特别是在开发涉及通信或用户验证的应用时。本文将详细讲解如何实现这一功能。 首先,我们要明白手机号码的归属地信息通常包括运营商(如中国移动、中国联通...

    自动获取手机号码归属地程序

    《自动获取手机号码归属地程序解析》 在IT领域,开发一个自动获取手机号码归属地的程序是一项实用的任务,尤其对于大数据分析、客户服务或者市场营销等领域。本程序采用C#编程语言,利用SOAP(简单对象访问协议)...

    php获取手机号码归属地,php号段归属地区类 !

    通过号段,可以大致确定手机号码的归属地,例如1380-1389号段属于中国移动的GSM网络。 3. **PHP获取归属地**: PHP可以通过查询数据库或使用API接口来获取手机号码的归属地。提供的资源可能包含一个数据库(mobile...

    php获取手机号码归属地,php号段归属地区类

    在PHP开发中,有时我们需要获取手机号码的归属地信息,例如用于用户注册验证或数据分析。本文将详细讲解如何使用PHP实现这一功能,主要基于提供的"mobilecity.class.php"类库和"data/Mobile.txt"数据文件。 首先,...

    全国手机号码归属地信息,包含移动联动电信

    全国手机号码归属地信息,包含移动联动电信,可用于数据仓库,数据分析等,通过手机号码获取手机号码归属地。 七位号码段,7位的号段库,号段归属地数据库,号码归属地数据文件,可用于数据分析,数据库维度数据 ...

    手机号码归属地

    手机号码归属地数据库是一种用于追踪和识别电话号码来源的工具,尤其在营销、客户服务和安全领域有着广泛应用。这个数据库包含了40万条记录,这意味着它覆盖了相当广泛的手机号码,可以提供大量的信息来帮助确定号码...

    2023年 手机号码 归属地

    5. **文件格式**:“2023年手机号段归属地-503508-(双击选格式下载)”可能是一个数据文件,其中包含了2023年的手机号码段及其归属地信息。503508可能是数据集的唯一标识符,双击选格式下载可能意味着用户可以根据...

    手机号码归属地数据库

    手机号码归属地数据库是一种用于查询特定手机号码所属的地理区域信息的工具,它通常包含了全国范围内的手机号码段与对应的省市区信息。这样的数据库对于许多业务和服务提供商来说非常有用,例如电话营销、客户服务、...

    python获取手机号码归属地

    1、安装模块:pip install phone 2、执行方法:python find.py 电话号码文件

    Android-rxjavaretrofit练习的demo获取手机号码归属地

    这个"Android-rxjavaretrofit练习的demo获取手机号码归属地"项目是一个很好的实战案例,让我们来深入探讨这两个库以及如何利用它们实现特定功能。 RxJava是一个响应式编程库,它引入了一种新的方式来处理事件和数据...

    手机号码归属地查询系统-源代码

    《手机号码归属地查询系统-源代码》是一个基于C#、.NET框架和SQL数据库的软件项目,旨在实现对手机号码归属地的实时查询功能。本文将深入探讨这个系统的架构、关键技术及其应用。 首先,C#是Microsoft开发的一种...

    手机号码归属地MySQL+CSV格式

    手机号码归属地MySQL+CSV格式

    手机号码归属地MySQL库

    手机号码归属地MySQL库是一种用于存储和查询手机用户号码归属地信息的数据集合,通常由电信运营商或第三方服务提供商维护。这种数据库对于业务运营、市场营销、客户服务等领域至关重要,因为它可以帮助识别和定位...

    Java获取手机号码归属地的实现

    Java获取手机号码归属地的实现是指通过Java语言获取手机号码的归属地信息,包括手机号码的国家代码、地区代码、运营商信息等。这种实现对发送短信、电话营销、客户关系管理等业务具有重要的意义。 在Java获取手机...

    手机号码归属地对照表

    手机号码归属地对照表是IT领域中用于追踪和管理手机号码基本信息的重要工具。这份资源,更新至2018年10月17日,是一个SQL文件,这意味着它使用SQL(结构化查询语言)格式存储数据,这是一种广泛应用于关系型数据库...

    Go-基于GO语言实现手机号码归属地信息库手机号归属地查询

    在本文中,我们将深入探讨如何使用Go语言来构建一个手机号码归属地信息库,并实现手机号码归属地查询功能。Go语言,又称Golang,是由Google开发的一种静态类型的编译型编程语言,以其简洁的语法、高效的性能以及强大...

    Jquery-Ajax获取手机号归属地实例

    在"Jquery-Ajax获取手机号归属地实例"中,我们的目标是当用户输入手机号码时,实时查询该号码的归属地。以下是一般步骤: 1. **HTML结构**:创建一个简单的HTML表单,包含一个输入框供用户输入手机号码,以及一个...

    手机号码归属地sql脚步

    标题中的“手机号码归属地sql脚步”指的是一个用于查询或获取手机号码归属地的SQL脚本。这样的脚本通常在数据库管理系统(如MySQL、SQL Server、Oracle等)中使用,通过对手机号码进行特定的查询操作,可以找出号码...

    Java根据手机号获取归属地

    填入手机号码,获取手机号码归属地

Global site tag (gtag.js) - Google Analytics