2011-08-01 14 views
0
// I get clientIp with below statement. 
request.setAttribute("clientIp", clientIp); 

// I use below statement to see clientIp on JSP page. 
<%=response.encodeURL((String)request.getAttribute("clientIp")) %> 

クライアントIPの国名も表示できますか?私はclientIpから国名を取得できますか?

同様:10.2.3.4 10.4.5.3 U.S.Aイングランド

+1

この回答をお試しください - http://stackoverflow.com/questions/1033/ip-to-country –

答えて

2

あなたは、Javaからそれをすべて行いたい場合は、IPデータベース、国番号にIPをマップするフラットファイルをダウンロードする必要があります。

Googleの周りにはいくつかの無料のものがあることがわかりますが、それらは完全に最新ではないかもしれません。

これはおそらく、次のようになります:

"16777216","33554431","AU","AUS","AUSTRALIA" 
"50331648","69956103","US","USA","UNITED STATES" 
"69956104","69956111","BM","BMU","BERMUDA" 
"69956112","72349055","US","USA","UNITED STATES" 

は、一度あなたがそれにルックアップを実行できるように、例えばSQLLite、データベースにロードしたいと思うダウンロード:

また
public String getCountryCode(String host) throws Exception { 
    InetAddress addr = InetAddress.getByName(host); 
    Long ipNum = ipToInt(addr.getHostAddress()); 

    Statement smt = conn.createStatement(); 
    ResultSet rs = smt.executeQuery("SELECT COUNTRY_CODE3 FROM ip_range WHERE IP_FROM <= "+ipNum+" and IP_TO >= "+ipNum); 
    if (rs.next()) 
     return rs.getString(1); 

    return null; 
} 

あなたのためのハードワークを行い、おそらくより最新のものになる、日々の制限付きの使用には無料の様々なweb servicesがあります。

関連する問題