查询Ip、身份证、手机所在地代码

package test;  
  
import java.io.ByteArrayOutputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.net.HttpURLConnection;  
import java.net.URL;  
import java.util.regex.Pattern;  
  
//获取Ip所在地: http://www.youdao.com/smartresult-xml/search.s?type=ip&q=58.30.32.61<!---->  
  
//身份证信息: http://www.youdao.com/smartresult-xml/search.s?type=id&q=232700198910206016<!---->  
  
//获取手机所在地: http://www.youdao.com/smartresult-xml/search.s?type=mobile&q=13671151172<!---->  
  
public class Test {  
    static Pattern patternLocation = Pattern  
            .compile("<LOCATION>(.+{1,})</LOCATION>");  
    private static final String IPURL = " http://www.youdao.com/smartresult-xml/search.s?type=ip&q=";  
    private static final String IDURL = " http://www.youdao.com/smartresult-xml/search.s?type=id&q=";  
    private static final String MOBILEURL = " http://www.youdao.com/smartresult-xml/search.s?type=mobile&q=";  
  
    private static String getLocationByIP(String ip) {  
        String address = "";  
        try {  
  
            URL url = new URL(IPURL + ip);  
            address = search(url);  
  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        address = address.substring(address.indexOf("location") + 9);  
        return address.substring(0, address  
                .indexOf("</location"));  
    }  
      
    private static String getLocationById(String id) {  
        String address = "";  
        try {  
  
            URL url = new URL(IDURL + id);  
            address = search(url);  
  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        String sex = address.indexOf("<gender>m</gender")>0?"男":"女";  
          
        address = address.substring(address.indexOf("location") + 9);  
        String birthday = address.substring(address.indexOf("birthday>")+9,address.indexOf("</bir"));  
        birthday = birthday.substring(0,4)+"年"+birthday.substring(4,6)+"月"+birthday.substring(6,8)+"日";  
        return "地址:"+address.substring(0, address  
                .indexOf("</location"))+" 性别:"+sex+" 生日:"+birthday;  
    }  
      
    private static String getLocationByMobile(String mobile) {  
        String address = "";  
        try {  
  
            URL url = new URL(MOBILEURL + mobile);  
            address = search(url);  
  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        address = address.substring(address.indexOf("location") + 9);  
        return "该号码归属地为:"+address.substring(0, address  
                .indexOf("</location"));  
    }  
    private static String search(URL url) throws IOException {  
        String address;  
        HttpURLConnection connect = (HttpURLConnection) url  
                .openConnection();  
        InputStream is = connect.getInputStream();  
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();  
        byte[] buff = new byte[256];  
        int rc = 0;  
        while ((rc = is.read(buff, 0, 256)) > 0) {  
            outStream.write(buff, 0, rc);  
        }  
        byte[] b = outStream.toByteArray();  
        //关闭  
        outStream.close();  
        is.close();  
        connect.disconnect();  
        address = new String(b);  
        return address;  
    }  
  
    public static void main(String[] args) {  
        System.out.println(getLocationByIP("221.226.177.158"));  
        System.out.println(getLocationById("xx"));  
        System.out.println(getLocationByMobile("xx"));  
    }  
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值