2017-02-07 2 views
0

자바 프로젝트의 경우 사용자 IP 주소를 웹 사이트의 고유 식별자로 사용합니다. 사용자가 IPv4 주소 만 가지고 있으면 잘 작동합니다.자바가 IPv6 주소로 IPv4 주소를 만들도록

하지만 내 문제는 사용자가 IPv6 주소를 가지고있을 때 브라우저가 IPv6 주소를보고하는 동안 Java가 IPv4 주소를보고한다는 것입니다 (PHP의 $ _SERVER [ 'REMOTE_ADDR'] 호출에서).

그래서 어떻게 Java가 IPv6 주소가 IPv4로되어 있는지보고합니까?

편집 : 일부 설명은 :

에만 파일을 다운로드 한 사람을 허용하는 데 사용됩니다. 여러 사람이 동일한 PC를 사용하더라도 중요하지는 않습니다.

사용자가 크롬으로 http://whatismyipaddress.com/으로 이동한다고 가정하면 IPv6 주소가 표시됩니다.

그러나 지금 자바를 사용하여 http://whatismyipaddress.com/을 가져 오는 경우 IPv4 주소가 표시됩니다. 이유가 무엇이며 Chrome에 표시되는 IPv6 주소를 어떻게 표시 할 수 있습니까?

편집 2 : 코드는 내가

public static String get(String url) throws WebFetchException { 
    String result = ""; 
    try { 
      URL url1 = new URL(url); 
      HttpsURLConnection urlConn = (HttpsURLConnection) url1.openConnection(); 
      urlConn.setConnectTimeout(8 * 1000); 
      urlConn.setRequestMethod("GET"); 
      BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream())); 
      String text; 
      while ((text = in.readLine()) != null) { 
       result = result + text; 
      } 
      in.close(); 
     } 
    } catch (Exception e) { 
     throw new WebFetchException("There was an exception while fetching the requested page: " + url); 
    } 
    return result; 
} 
+0

우선, IP 주소는 (완전히) 고유 한 식별자가 아닙니다. ipv4 나 ipv6과 상관없이 왜 IP를 저장하지 않으시겠습니까? 그리고 "Java가 IPv4 주소를보고 할 것"이란 무엇을 의미합니까? –

+0

동일한 시스템에서 여러 사용자가 사용할 수 없습니다. –

+0

어떻게 ip 데이터를 가져 오나요? 특정 유형을 사용합니까? 코드가 있습니까? –

답변

1

식별자가 잘못 같은 IP 주소를 사용할 수있는 가정을 사용합니다. 점점 더 많은 ISP가 어떤 형태의 NAT를 배포하고 있으므로 많은 사용자가 IPv4 평가 풀을 공유하게됩니다. 사용자가 오는 주소는 한 연결에서 다른 연결로 변경 될 수 있으므로 안정적으로 사용할 수는 없습니다.

반면에 더 많은 사용자가 IPv6을 사용하고 장치에 여러 IPv6 주소가 있으며 시간이 지남에 따라 바뀝니다.

연결 문제로 인해 사용자가 IPv4와 IPv6 사이를 전환합니다. 글쎄, 사용자는 알지도조차 모른다, 그들의 장치는 다만 그것을 할 것이다.

그래서 ip 주소를 사용하면 작동하지 않습니다.

관련 문제