> Java > java지도 시간 > 분산 시스템용 Java에서 올바른 IP 주소를 안정적으로 얻는 방법은 무엇입니까?

분산 시스템용 Java에서 올바른 IP 주소를 안정적으로 얻는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-14 04:17:09
원래의
886명이 탐색했습니다.

How to Reliably Get the Correct IP Address in Java for Distributed Systems?

Java를 사용하여 현재 시스템의 IP 주소 가져오기

다양한 시스템이나 포트에서 실행되는 여러 노드가 있는 분산 시스템을 개발할 때 로컬 시스템의 IP 주소를 얻는 것이 중요해집니다. 그러나 Inet4Address.getLocalHost().getHostAddress() 또는 InetAddress.getLocalHost().getHostAddress()를 사용하면 여러 네트워크 인터페이스 및 각 인터페이스와 연결된 IP 주소로 인해 잘못된 IP 주소가 반환될 수 있습니다.

IP 주소 선택 시 고려 사항

이 시나리오에서는 노드를 등록해야 합니다. IP 주소를 부트스트래핑 노드로 보냅니다. IP 주소 선택은 다음 우선순위를 따라야 합니다.

  1. 가능한 경우 PPP IP 주소를 우선적으로 선택하세요.
  2. PPP를 사용할 수 없는 경우 LAN IP 주소를 사용하세요.
  3. 폴백으로 노드가 동일한 것으로 가정되면 127.0.0.1을 등록합니다.

네트워크 인터페이스 사용

NetworkInterface.getNetworkInterfaces() 메소드는 로컬 시스템에 있는 네트워크 인터페이스의 포괄적인 목록을 제공합니다. 각 네트워크 인터페이스에는 여러 개의 IP 주소가 있을 수 있습니다. 모든 IP 주소를 얻으려면 다음 코드를 사용하여 네트워크 인터페이스 및 관련 IP 주소를 반복하십시오.

Enumeration e = NetworkInterface.getNetworkInterfaces();
while (e.hasMoreElements()) {
    NetworkInterface n = (NetworkInterface) e.nextElement();
    Enumeration ee = n.getInetAddresses();
    while (ee.hasMoreElements()) {
        InetAddress i = (InetAddress) ee.nextElement();
        System.out.println(i.getHostAddress());
    }
}
로그인 후 복사

IP 주소 구별

목록이 있으면 IP 주소의 경우 다양한 유형의 IP를 구별하는 것이 중요합니다. 주소:

  • 루프백: 127.xxx.xxx.xxx
  • 비공개(로컬 사이트): 192.168.xxx.xxx, 10.xxx.xxx.xxx, 172.16.xxx.xxx ~ 172.31.xxx.xxx
  • 링크 로컬: 169.254.xxx.xxx
  • 멀티캐스트: 224.xxx.xxx.xxx 239.xxx.xxx.xxx
  • 방송: 255.255.255.255
  • 공개 지점간: 위 범위를 벗어나는 모든 것

다음을 사용할 수 있습니다. InetAddress API는 선택 우선순위에 따라 특정 IP 주소 유형을 확인합니다.

결론

NetworkInterface API를 활용하고 IP 주소 유형을 고려하면 IP 주소 유형을 효과적으로 얻을 수 있습니다. 노드의 정확한 IP 주소를 부트스트래핑 노드에 등록하여 분산 시스템 내에서 적절한 통신을 보장합니다.

위 내용은 분산 시스템용 Java에서 올바른 IP 주소를 안정적으로 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿