数日前、Web サイトのバックエンドに IP アドレスの地理的位置を分析する機能を追加したいと思い、インターネット上のブログを読んでいくつかのプログラムを見つけましたが、文章が簡潔ではないといつも感じていました。十分であり、冗長に感じました。以下のプログラムは非常に簡単だと思うので、それを整理してデバッグしました。このプログラムは、「Tencent IP Sharing Plan」が提供するインターフェイスを呼び出します。もちろん、ip138 が提供するインターフェイスに変更することもできます。ただし、これら 2 つの Web サイトから返される文字列の形式は若干異なるため、個別に解析する必要があります。
public String getAddressByIP(){ try { String strIP = "0.0.0.0" URL URL = 新しい URL( "http://ip.qq.com/cgi-bin/searchip?searchip1=" + strIP); url.openConnection(); BufferedReader リーダー = new BufferedReader(newInputStreamReader(conn.getInputStream(), "GBK")); null; StringBuffer result = new StringBuffer(); while((line = Reader.readLine()) != null) { result.append(line) } strIP = result.substring(result.indexOf() 「この IP の場所は次のとおりです。」 )) strIP = strIP.substring(strIP.indexOf( ":") + 1); strIP.indexOf("県")); 文字列都市 = strIP.substring(strIP.indexOf("県") + 1, strIP.indexOf("市"); } catch(IOException e) { "読み取りに失敗しました" を返します }}
添付:
Sina インターフェース: http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=
タオバオインターフェース: http://ip.taabao.com/service/getIpInfo.php?ip=[IP アドレス文字列]