Taobao가 반환 한 데이터는 다음과 같습니다.
{ "code": 0, "data": { "country": "/u4e2d/u56fd", "country_id": "cn", "영역": "/u534e/u4e1c", "area_id": "300000", "지역": "/u5c71/u4e1c/u7701", "region_id": " 370000 ","City ":"/u4e1c/u8425/u5e02 ","city_id ":"370500 ","카운티 ":" ","카운티_id ":"-1 ","ISP ":"/u8054/u901a " , "ISP_ID": "100026", "IP": "60.214.183.158"}}
용법:
코드 사본은 다음과 같습니다.
문자열 arr1 = getAddressByip.getAddressByip ( "120.192.182.1");
System.out.println (ARR1);
자세한 내용은 코드를 참조하십시오
코드 사본은 다음과 같습니다.
패키지 getAddressByip;
import java.io.BytearRayoutputStream;
import java.io.ioexception;
import java.io.inputstream;
import java.net.httpurlConnection;
java.net.malformedurlexception import;
import java.net.url;
import net.sf.json.jsonobject;
공개 클래스 GetAddressByip
{
/**
*
* @param ip
* @반품
*/
public static string getAddressByip (String IP) {
문자열 resout = "";
노력하다{
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");
문자열 코드 = (문자열) obj.get ( "code");
if (code.equals ( "0")) {
resout = obj2.get ( "country") +"-" +obj2.get ( "area") +"-" +obj2.get ( "city") +"-" +obj2.get ( "isp ");
}또 다른{
Resout = "IP 주소가 올바르지 않습니다";
}
} catch (예외 e) {
e.printstacktrace ();
resolve = "IP 주소 예외 가져 오기 :"+e.getMessage ();
}
답장 반환;
}
public static string getJsonContent (String urlstr)
{
노력하다
{// httpurlConnection 연결 객체를 가져옵니다
url url = 새 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 (marlormedurlexception e)
{
e.printstacktrace ();
}
캐치 (ioexception e)
{
e.printstacktrace ();
}
반품 "";
}
개인 정적 문자열 convertStream2json (inputStream inputStream)
{
문자열 JSONST = "";
// BYTEARRAYOUTPUTSTREAM은 메모리 출력 스트림과 동일합니다
bytearrayoutputStream out = 새로운 BytearRayoutputStream ();
바이트 [] 버퍼 = 새로운 바이트 [1024];
int len = 0;
// 입력 스트림을 메모리 출력 스트림으로 전송합니다.
노력하다
{
while ((len = inputStream.read (buffer, 0, buffer.length))! = -1)
{
out.write (Buffer, 0, Len);
}
// 메모리 스트림을 문자열로 변환합니다
JSONST = 새 String (out.tobytearRay ());
}
캐치 (ioexception e)
{
// TODO 자동 생성 캐치 블록
e.printstacktrace ();
}
jssonst를 반환합니다.
}
}