• ベストアンサー

[Perl]IPアドレスについて

質問させていただきます。 IPアドレスは普通、114.114.96.20という風に四つに分かれていますが、これを一つの数字にまとめる、ということはPerl言語でできるでしょうか? 各数字ごとに進数変換して、ピリオドを取ってまとめる、という形を考えたのですが… 例えば2進数変換すれば 01110010011100100110000000010100 という感じになります。 これ以外に何か方法はありますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.2

何のためにどうしたいのか不明ですが、 "114.114.96.20" というデータから、4バイトのバイナリデータを得たい~~この場合は"\x72\x72\x60\x14"~~ということなら、 $x = "114.114.96.20"; $y = pack("C*",split(/\./,$x)); さらにそれを数値~~この場合は0x72_72_60_14==0b01110010_01110010_01100000_00010100==1920098324~~に直したいなら、 $z = unpack("N",$y);

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「一つの数字にまとめる」の正確な意味はわかりませんが, ピリオドで 4つにわけててきと~に計算すればいいのでは? 例えば $a, $b がそれぞれ '1' 及び '2' なら $a*10+$b の結果は 12 だよね.

blitzcrank
質問者

補足

やはりそういうやり方ぐらいしかないですよね、ありがとうございます。 が。。。あらたな問題が発生してしまったので再度質問させていただきます。

すると、全ての回答が全文表示されます。

関連するQ&A