2017-11-02 18 views
1

NODEJS의 요청 객체는 클라이언트의 IP 주소를 얻으려면 req.connection.remoteAddres을 제공하지만 IPV6 형식의 주소를 제공합니다. 어떻게 읽을 수있는 IPV4 형식으로 변환합니까?nodejs expressjs에서 ipv6 주소를 ipv4 주소로 변환하는 방법은 무엇입니까?

+2

128 비트를 32 비트로 변환 할 수 없으므로 불가능한 일이 발생했습니다. –

+0

:: ffff : IPv6 (128 비트) 공간 안에있는 IPv4 (32 비트) 주소의 서브넷 접두사입니다. 미적 이유로 IPv6 네트워크로 전환하거나 IPv6 주소와 마주 칠 때 코드가 손상됩니다. –

답변

1

IPv6 주소가 ::ffff:으로 시작하는 경우 클라이언트는 IPv4와 IPv6 응용 프로그램간에 통신하고 있습니다. 이 경우 주소의 나머지는 IPv4 주소입니다. ::ffff:10.11.12.13으로 작성하면 IPv4 주소를 쉽게 볼 수 있습니다. ::ffff:0a0b:0c0d 또는 ::ffff:a0b:c0d으로 쓸 수도 있습니다.이 경우 주소의 마지막 부분을 16 진수에서 10 진수로 변환해야합니다.

IPv6 주소가 ::ffff:로 시작하지 않으면 클라이언트는 실제로 IPv6과 통신하며 IPv4와 IPv6은 다른 주소를 가진 다른 프로토콜이기 때문에 변환이 불가능합니다. 시스템은 IPv4 만, IPv6 만 또는 둘의 조합을 가질 수 있습니다. 주소를보고 그 사실을 알 수있는 방법이 없습니다.