dポイントプレゼントキャンペーン実施中!

質問させていただきます。

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

これ以外に何か方法はありますでしょうか?

A 回答 (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);
    • good
    • 0

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


$a*10+$b
の結果は 12 だよね.

この回答への補足

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

補足日時:2012/12/23 01:50
    • good
    • 0

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