IPv6에 익숙하지 않습니다. 아래 예제 프로그램처럼 호스트의 IP 주소를 가져와 인쇄하는 간단한 코드 조각이 있습니다.IPv6 - InetAddress.getAllByName이 일치하지 않는 범위 ID를 반환합니다.
public class networkinterfacetest {
public static void main(String...args) {
String host="BGL-351L";
try {
InetAddress[] a = InetAddress.getAllByName(host);
for(InetAddress ip:a) {
System.out.println("ip all:" + ip);
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
출력에는 범위 ID가있는 IPv4 및 IPv6 주소도 있습니다.
이 범위 ID가 어떻게 할당되는지 알고 싶습니다. 항상 일관성이 없기 때문입니다. 계속 변화하고 있습니다.
어제 프로그램을 실행했을 때 범위 ID가 "% 2"인 출력이 나타났습니다.
ip all:BGL-351L/10.10.64.86
ip all:BGL-351L/fe80:0:0:0:5e26:aff:fe77:e4fd%2
ip all:BGL-351L/fcff:3:10:64:5e26:aff:fe77:e4fd%2
그리고 오늘 같은 프로그램을 실행하면 "% 3"이 (가) 범위 ID로 나타납니다.
ip all:BGL-351L/10.10.64.86
ip all:BGL-351L/fe80:0:0:0:5e26:aff:fe77:e4fd%3
ip all:BGL-351L/fcff:3:10:64:5e26:aff:fe77:e4fd%3
누군가이 범위 ID가 어떻게 할당되는지 이해할 수 있도록 도와 줄 수 있습니까?
Windows 버전인가요? 그렇다면 범위 ID가 "ipconfig"에있는 범위 ID의 출력과 일치합니까? –
@JeremyVisser 저는 리눅스를 사용하고 있습니다. 언급했듯이 "ip addr"명령과 일치합니다. 내 대답에 업데이트했습니다. – vijayashankard