通过JAVA bean查询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("321281198710093696"));
		System.out.println(getLocationByMobile("15895861841"));
	}
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值