2009-08-07 7 views
1

내가 대학에있는 경우 특정 코드를 활성화하라는 요청을 받았습니다. 그래서 나는 내가 어디에서 내 대학의 iP과 일치하는지 알고 싶습니다. Java에서 이것을하는 방법 wonderng인가? 나는 이미 루프백 인터페이스를 시도했다.java의 ip 주소

+0

당신이하려는 일에 대해 좀 더 자세히 설명해 주시겠습니까? 활성화하고 일치하는 것은 무엇을 의미합니까? –

+0

내 대학에 있다면 나는 대학 밖에서 링크를 검색하도록 자동으로 프록시를 활성화 할 의향이 있습니다. 그래서 나는 그것을 내 대학의 iP 범위와 비교 한 다음 계속해야한다. 문제는 내 반환 iP가 127.0.1.1입니다. –

답변

3

NetworkInterface.getNetworkInterfaces()을 사용하고 각 인터페이스에서 getInetAddresses()을 호출하면 컴퓨터에 할당 된 모든 IP 주소를 볼 수 있습니다. 당신이 당신의 대학의 범위의 IP가 있는지 확인하려면, 당신은 같은 것을 할 수있는 :

boolean onCampusNetwork() { 
    for(Enumeration<NetworkInterface> ifaces = NetworkInterface.getNetworkInterfaces(); ifaces.hasMoreElements();) { 
     NetworkInterface iface = ifaces.nextElement(); 
     for(Enumeration<InetAddress> addresses = iface.getInetAddresses(); addresses.hasMoreElements;) { 
      InetAddress address = addresses.nextElement(); 
      // return true if address is in the university's range; something like: 
      if(address.toString().startsWith("10.0")) { 
       return true; 
      } 
     } 
    } 
    // None of the IP addresses were in the university's range. 
    return false; 
} 

이 코드를 실행하지 않은,하지만 당신이 무엇을해야합니다.

0

공개 IP (또는 내가 원하는 것으로 가정하는 게이트웨이의 공개 IP)를 제공하는 모든 종류의 웹 사이트가 있습니다. 해당 사이트 중 하나에 HTTP 연결을 설정하고 페이지에 정보가 표시되도록 프로그램에 지시 할 수 있습니다. 이러한 사이트는 매우 예측 가능한 형식이므로 결과는 정규식 또는 2로 구문 분석하기가 매우 쉽습니다. 인터넷 연결이있는 경우에만 작동합니다.

또는 프로그램에서 대학의 인트라넷 서버 중 하나에 연결하도록 할 수 있습니다. 외부 세계에 액세스 할 수없는 사이트에 연결할 수 있으면 LAN에 있습니다.