2011-08-01 3 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 U.S.A 10.4.5.3 잉글랜드

+1

이 답변을 시도하십시오 - http://stackoverflow.com/questions/1033/ip-to-country –

답변

2

자바에서 모든 작업을 수행 할 경우는 IP 데이터베이스, COUNTRYCODE에 IP를 매핑하는 플랫 파일을 다운로드해야합니다.

Google 주변에 무료로 제공되는 것이 있지만 완전히 최신이 아닐 수 있습니다.

아마 다음과 같이 보일 것입니다 :

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; 
} 

을 다른 방법 : 일단 당신이 그것에 조회를 수행 할 수 있도록 데이터베이스, 예를 들어 SQLLite에로드 할 수 있습니다 다운로드

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

을 다양한 web services은 무료로 사용할 수있는 일일 사용량이 제한되어있어 귀하를 위해 열심히 노력할 것이며 아마도 최신 정보 일 것입니다.

관련 문제