2017-11-02 34 views
1

NODEJSの要求オブジェクトは、このメソッドを提供しますreq.connection.remoteAddresクライアントのIPアドレスを取得しますが、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のみ、または両方の組み合わせを持つことができます。住所を見ることによってそれを知る方法はありません。

関連する問題