直接上代码
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* 根据IP地址获取详细的地域信息
* 百度API : http://api.map.baidu.com/location/ip?ip=218.192.3.42&ak=4NsiohuFbm02dUR8sLxPdLUXsjVy5DwG&coor=bd09ll
*/
public class AddressUtils {
/**
*
* @param content
* 请求的参数 格式为:ip=xxx&ak=xxx
* @param encoding
* 服务器端请求编码。如GBK,UTF-8等
* @return
* @throws UnsupportedEncodingException
*/
public static String getAddresses(String content, String encodingString)
throws UnsupportedEncodingException {
// 这里调用百度API
String urlStr = "http://api.map.baidu.com/location/ip";
String returnStr = getResult(urlStr, content, encodingString);
if (returnStr != null) {
// 处理返回的省市区信息
// System.out.println("(1) unicode转换成中文前的returnStr : " + returnStr);
returnStr = decodeUnicode(returnStr);
// System.out.println("(2) unicode转换成中文后的returnStr : " + returnStr);
String[] temp = returnStr.split(",");
if(temp.length<3){
return "0";//无效IP,局域网测试
}
return returnStr;
}
return null;
}
/**
* @param urlStr
* 请求的地址
* @param content
* 请求的参数 格式为:name=xxx&pwd=xxx
* @param encoding
* 服务器端请求编码。如GBK,UTF-8等
* @return
*/
private static String getResult(String urlStr, String content, String encoding) {
URL url = null;
HttpURLConnection connection = null;