首页
IT
登录
6mi
u
盘
搜
搜 索
IT
Java查询IP地址所在地
Java查询IP地址所在地
xiaoxiao
2021-04-19
96
[java] view plain copy
package
ip;
import
java.io.ByteArrayOutputStream;
import
java.io.IOException;
import
java.io.InputStream;
import
java.net.HttpURLConnection;
import
java.net.MalformedURLException;
import
java.net.URL;
import
net.sf.json.JSONObject;
public
class
GetAddressByIp
{
public
static
void
main(String[] args) {
String getAddressByIp = GetAddressByIp(
"59.60.9.2"
);
System.out.println(getAddressByIp);
}
/**
*
* @param IP
* @return
*/
public
static
String GetAddressByIp(String IP){
String resout =
""
;
try
{
String str = getJsonContent(
"http://ip.taobao.com/service/getIpInfo.php?ip="
+IP);
System.out.println(str);
JSONObject obj = JSONObject.fromObject(str);
JSONObject obj2 = (JSONObject) obj.get(
"data"
);
String code = String.valueOf(obj.get(
"code"
));
if
(code.equals(
"0"
)){
resout = obj2.get(
"country"
)+
"--"
+obj2.get(
"area"
)+
"--"
+obj2.get(
"city"
)+
"--"
+obj2.get(
"isp"
);
}
else
{
resout =
"IP地址有误"
;
}
}
catch
(Exception e){
e.printStackTrace();
resout =
"获取IP地址异常:"
+e.getMessage();
}
return
resout;
}
public
static
String getJsonContent(String urlStr)
{
try
{
// 获取HttpURLConnection连接对象
URL url =
new
URL(urlStr);
HttpURLConnection httpConn = (HttpURLConnection) url
.openConnection();
// 设置连接属性
httpConn.setConnectTimeout(
3000
);
httpConn.setDoInput(
true
);
httpConn.setRequestMethod(
"GET"
);
// 获取相应码
int
respCode = httpConn.getResponseCode();
if
(respCode ==
200
)
{
return
ConvertStream2Json(httpConn.getInputStream());
}
}
catch
(MalformedURLException e)
{
e.printStackTrace();
}
catch
(IOException e)
{
e.printStackTrace();
}
return
""
;
}
private
static
String ConvertStream2Json(InputStream inputStream)
{
String jsonStr =
""
;
// ByteArrayOutputStream相当于内存输出流
ByteArrayOutputStream out =
new
ByteArrayOutputStream();
byte
[] buffer =
new
byte
[
1024
];
int
len =
0
;
// 将输入流转移到内存输出流中
try
{
while
((len = inputStream.read(buffer,
0
, buffer.length)) != -
1
)
{
out.write(buffer,
0
, len);
}
// 将内存流转换为字符串
jsonStr =
new
String(out.toByteArray());
}
catch
(IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return
jsonStr;
}
}
转载请注明原文地址: https://ju.6miu.com/read-675886.html
技术
最新回复
(
0
)