영역 색인은 sockaddr_in6 구조의 scope_id와 어떤 관련이 있습니까?IPv6 영역 색인 및 scope_id
기능은 플랫폼에 따라 다르며 관련성을 알고 싶습니다. Windows의 경우 예를 들어 SCOPE_ID structure (32 비트 값)이 있습니다. Mac OSX는 32 비트 값만 있습니다. 분명히 32 비트 값은 갈 길이지만 정확히 어떻게 배치됩니까? 여전히 상위 4 비트가 "레벨"입니까? 네트워크 바이트 순서가 어떻게 영향을 줍니까?
또한 아래에서 IP 주소 (예 : FF80 :: 1 % 1)에 지정된 영역 색인이 앞서 설명한 구조의 아래쪽 28 비트로 직접 변환됩니다. 숫자가 아닌 이름을 사용하는 Mac OSX에서는 어떻게 작동합니까 (예 : FF80 :: 1 % en0). 4 CC로 인코딩합니까? 똑같이 나는 리눅스가 28 비트에 적합하지 않을 수있는 4 문자를 사용한다는 것을 기억하는 것 같다.
누군가가이 혼란을 설명 할 수 있습니까? 인터넷에서 ipv6에 대한 소중한 정보가 거의 있기 때문에 필자는이 모든 작업에 대한 자습서를 작성해야 할 것입니다.
편집 : scope_id가 네트워크 바이트 순서입니까? 난 그냥 recvfrom에서 반환 된 scope_id 찾고 있어요 그리고 그것은 리틀 엔디안 순서에있을 것으로 보인다 ... 그게 옳을 수 없어?
건배 ... 좋은 대답이지만 한 가지를 잃어 버렸습니다. 귀하의 interface_req_t는 scope_id 필드에 넣기에는 너무 큽니다 ... – Goz
저는 해당 인터페이스를 사용하여 getifaddrs()/GetAdapterAddresses()를 호출하여 일치하는 인터페이스를 찾을 수 있습니다. #/scope # . –