Java를 사용하여 현재 시스템의 IP 주소 가져오기
다양한 시스템이나 포트에서 실행되는 여러 노드가 있는 분산 시스템을 개발할 때 로컬 시스템의 IP 주소를 얻는 것이 중요해집니다. 그러나 Inet4Address.getLocalHost().getHostAddress() 또는 InetAddress.getLocalHost().getHostAddress()를 사용하면 여러 네트워크 인터페이스 및 각 인터페이스와 연결된 IP 주소로 인해 잘못된 IP 주소가 반환될 수 있습니다.
IP 주소 선택 시 고려 사항
이 시나리오에서는 노드를 등록해야 합니다. IP 주소를 부트스트래핑 노드로 보냅니다. IP 주소 선택은 다음 우선순위를 따라야 합니다.
네트워크 인터페이스 사용
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를 구별하는 것이 중요합니다. 주소:
다음을 사용할 수 있습니다. InetAddress API는 선택 우선순위에 따라 특정 IP 주소 유형을 확인합니다.
결론
NetworkInterface API를 활용하고 IP 주소 유형을 고려하면 IP 주소 유형을 효과적으로 얻을 수 있습니다. 노드의 정확한 IP 주소를 부트스트래핑 노드에 등록하여 분산 시스템 내에서 적절한 통신을 보장합니다.
위 내용은 분산 시스템용 Java에서 올바른 IP 주소를 안정적으로 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!