查詢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"));  
    }  
}  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章