ข้อมูลที่ส่งคืนโดย Taobao คือ:
{"รหัส": 0, "data": {"ประเทศ": "/u4e2d/u56fd", "country_id": "cn", "พื้นที่": "/u534e/u4e1c", "พื้นที่": "300000" "ภูมิภาค": "/U5C71/U4E1C/U7701", "region_id": " 370000 "," เมือง ":"/U4E1C/U8425/U5E02 "," City_ID ":" 370500 "," County ":" "," 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
* @กลับ
-
สตริงคงที่สาธารณะ 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 ("ข้อมูล");
String code = (string) obj.get ("รหัส");
if (code.equals ("0")) {
resout = obj2.get ("ประเทศ") +"-" +obj2.get ("พื้นที่") +"-" +obj2.get ("เมือง") +"-" +obj2.get ("ISP ");
}อื่น{
resout = "ที่อยู่ IP ไม่ถูกต้อง";
-
} catch (Exception e) {
E.PrintStackTrace ();
resolve = "รับข้อยกเว้นที่อยู่ IP:"+e.getMessage ();
-
ตอบกลับ;
-
สตริงคงที่สาธารณะ getJsonContent (String urlstr)
-
พยายาม
{// รับวัตถุการเชื่อมต่อ httpurlconnection
url url = url ใหม่ (urlstr);
httpurlConnection httpconn = (httpurlconnection) url
.Openconnection ();
// ตั้งค่าคุณสมบัติการเชื่อมต่อ
httpConn.SetConnectTimeOut (3000);
httpconn.setDoInput (จริง);
httpconn.setRequestMethod ("รับ");
// รับรหัสที่เกี่ยวข้อง
int respcode = httpConn.getResponsecode ();
if (respcode == 200)
-
return ConvertSream2json (httpconn.getInputStream ());
-
-
จับ (Malformedurlexception E)
-
E.PrintStackTrace ();
-
จับ (ioexception e)
-
E.PrintStackTrace ();
-
กลับ "";
-
สตริงคงที่ส่วนตัว ConvertStream2Json (InputStream InputStream)
-
สตริง jsonstr = "";
// byteArrayOutputStream เทียบเท่ากับสตรีมเอาต์พุตหน่วยความจำ
ByTeArrayOutputStream out = new ByteArrayOutputStream ();
ไบต์ [] บัฟเฟอร์ = ไบต์ใหม่ [1024];
int len = 0;
// ถ่ายโอนสตรีมอินพุตไปยังสตรีมเอาต์พุตหน่วยความจำ
พยายาม
-
ในขณะที่ ((len = inputstream.read (บัฟเฟอร์, 0, buffer.length))! = -1)
-
out.write (บัฟเฟอร์, 0, len);
-
// แปลงสตรีมหน่วยความจำเป็นสตริง
jsonstr = สตริงใหม่ (out.tobytearray ());
-
จับ (ioexception e)
-
// todo catch block ที่สร้างอัตโนมัติ
E.PrintStackTrace ();
-
กลับ jsonstr;
-
-