プロが教える店舗&オフィスのセキュリティ対策術

IPv4のアドレス188.140.70.5をIPv6(16進数表記)で表したいです。

解法を教えてもらえないでしょうか?

A 回答 (5件)

これでも見てください。


https://ja.wikipedia.org/wiki/IPv6%E3%82%A2%E3%8 …
10進16進変換の話だけではないんです。

16で割って
188 = 16 × 11 + 12,
140 = 16 × 8 + 12,
70 = 16 × 4 + 6
から
188(10) = bc(16),
140(10) = 8c(16),
70(10) = 46(16),
7(10) = 7(16)
なので、
188.140.70.5 のビット列を16進数で書くと
bc8c4607 ですが、

これを 16ビットごとに区切った
::bc8c:4607 は、今では廃止されています。
::ffff:bc8c:4607 としてIPv6へ埋め込む規約です。

また、これを ::188.140.70.5 と書いてよい
ことになっているので、16進変換する意義も不明です。
    • good
    • 0

>IPv4のアドレス188.140.70.5をIPv6(16進数表記)で表したいです。



凝ったことをやりたい方とお見受けしましたので、遠慮無しの回答になります。RFCの解釈はご自身で、更に参照すべきRFCを探すのもご自身でお願いします。

IPv4アドレスを含むIPv6アドレスをテキストで表記する方法を正確に知りたいのであれば、RFC5952(A Recommendation for IPv6 Address Text Representation)の5章を参照して下さい。IPv4射影アドレス(IPv4-Mapped IPv6 Address)と呼ばれるものが相当です。元々、IPv6アドレスの基本仕様(RFC4291)には、IPv4射影アドレスというものがありますけどね。

IPv6アドレスを使いながらも機器間の通信はIPv4通信です。実際、DNSサーバに登録するにしても、AAAAレコードに記述してはいけません。何故ならそのホストはIPv4のアドレスしかなく、IPv4通信しかできないので、書かれるべきはAレコードだからです。IPv6アドレスもあるよ、ということであればデュアルスタックなので、「ならIPv6のアドレスはAAAAレコードに書いておきゃいいだろ」って話にしかなりません。
RFC5952でIPv4アドレスの埋め込み例として紹介されているISATAP(RFC5241)とか、NAT64(IPv6ネットワークアドレスは64:ff9b::/96)なんかではIPv6通信だという面倒臭さもありますが、むしろこれは例外です。

表記方法は、80ビットの0、16ビットの1に続けてIPv4アドレスです。IPv4アドレスのオクテット単位の区切り記号は、IPv4の表記ルール通り「.(ドット)」です。
質問者の方が表記したいと仰っている例でいえば、::ffff:188.140.70.5になります。
    • good
    • 0

「IPv4のアドレスをIPv6で表す」って、全く意味をなさないんだけど、判らない? IPv4とIPv6って、全く別のものだから、一方を他方で表すなんて出来るわけがない。



もし、IPv4の各数字を16進数で表示したい、ということなら、
188=BC
140=8C
70=46
5=5
    • good
    • 0

解法はありません。


IPv4とIPv6とは全く独立したものです。
    • good
    • 0

無いです。


無い桁を勝手に作ることはできません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!