Taobaoによって返されるデータは次のとおりです。
{"code":0、 "data":{"country": "/u4e2d/u56fd"、 "country_id": "cn"、 "area": "/u534e/u4e1c"、 "area_id": "300000"、 「領域」: "/u5c71/u4e1c/u7701"、 "region_id": " 370000 "、" City ":"/u4e1c/u8425/u5e02 "、" city_id ":" 370500 "、"郡 ":" "" "" "county_id": "-1"、 "ISP": "/u8054/u901a" 、「ISP_ID」:「100026」、「IP」:「60.214.183.158 "}}}
使用法:
コードコピーは次のとおりです。
string arr1 = getaddressbyip.getaddressbyip( "120.192.182.1");
System.out.println(arr1);
詳細については、コードをご覧ください
コードコピーは次のとおりです。
パッケージgetaddressbyip;
java.io.bytearrayoutputStreamをインポートします。
java.io.ioexceptionをインポートします。
java.io.inputStreamをインポートします。
java.net.httpurlconnectionをインポートします。
java.net.malformedurlexceptionをインポートします。
java.net.urlをインポートします。
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");
文字列code =(string)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 = new url(urlstr);
httpurlconnection httpconn =(httpurlconnection)url
.openconnection();
//接続プロパティを設定します
httpconn.setConnectTimeout(3000);
httpconn.setDoinput(true);
httpconn.setRequestMethod( "get");
//対応するコードを取得します
int respcode = httpconn.getResponseCode();
if(respcode == 200)
{
convertStream2json(httpconn.getInputStream());
}
}
catch(malformedurlexception e)
{
e.printstacktrace();
}
catch(ioexceptione)
{
e.printstacktrace();
}
戻る "";
}
private static string convertStream2json(inputstream inputstream)
{
文字列jsonstr = "";
// bytearrayoutputStreamは、メモリ出力ストリームと同等です
bytearrayoutputStream out = new bytearrayoutputStream();
byte [] buffer = new byte [1024];
int len = 0;
//入力ストリームをメモリ出力ストリームに転送します
試す
{
while((len = inputstream.read(buffer、0、buffer.length))!= -1)
{
out.write(buffer、0、len);
}
//メモリストリームを文字列に変換します
jsonstr = new String(out.tobytearray());
}
catch(ioexceptione)
{
// TODO自動生成キャッチブロック
e.printstacktrace();
}
jsonstrを返します。
}
}