Beberapa hari yang lalu, saya ingin menambahkan fungsi untuk menganalisis lokasi geografis alamat IP di backend website. Saya membaca beberapa blog di Internet dan menemukan beberapa program, tetapi saya selalu merasa tulisannya tidak ringkas cukup dan terasa bertele-tele. Program di bawah ini kelihatannya cukup sederhana, jadi saya memilahnya dan men-debugnya. Program ini memanggil antarmuka yang disediakan oleh "Tencent IP Sharing Plan". Namun, string yang dikembalikan oleh kedua situs web ini Formatnya agak berbeda dan harus diurai secara terpisah.
public String getAddressByIP(){ coba { String strIP = "0.0.0.0"; URL URL = URL baru( "http://ip.qq.com/cgi-bin/searchip?searchip1=" + strIP); url.openConnection(); Pembaca BufferedReader = BufferedReader baru(baris InputStreamReader baru(sambungan.getInputStream(), "GBK")); null; StringBuffer hasil = new StringBuffer(); while((line = reader.readLine()) != null) { hasil.append(line } reader.close(); "Lokasi IP ini adalah:" )); strIP = strIP.substring(strIP.indexOf( ":") + 1); strIP.indexOf("provinsi")); String kota = strIP.substring(strIP.indexOf("provinsi") + 1, strIP.indexOf("kota")); } catch(IOException e) { kembali "Bacaan gagal"; }}
Terlampir:
Antarmuka Sina: http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=
Antarmuka Taobao: http://ip.taobao.com/service/getIpInfo.php?ip=[string alamat ip]