ロングIP とかいう、IP アドレスを区切らずに十進数にしたやつ((普通見る IP アドレスは 0111 1111 . 0000 0000 . 0000 0000 . 0000 0001 っていう 1byte(8bit) ごとに区切ったやつを10進数にそれぞれ変換している。ロング IP は全部繋げて10進数にするだけ。って説明するまでもねぇなうんこ ))があるのを窓の森で知った((http://3639551843/ は Google.))んだけど、あれって正引きさえ除けば javascript でさえできるよね……でも最初に ruby で書いてから javascript に書き直そうと思ったら sprintf なくて面倒だった。結局汚くなってしまった。まぁ使わないんだけど。

function longip(ip) {
ip = ip.split(".");
var ret = "";
for (var i = 0; i < ip.length; i++) {
temp = Number(ip[i]).toString(2);
zero = "";
for (var j = 0; j < (8 - temp.length); j++) {
zero += "0";
}
ret += zero + temp;
}
ret = parseInt(ret, 2);
return ret;
}

つーか ruby のほうのソース消してしまった、のでまぁまた書いてみる。数行だし。

def longip(ip)
binary = ""
ip.split(".").each do |part|
binary += "%08b" % part.to_i
end
binary.to_i(2)
end

longip("127.0.0.1") => 2130706433

longip(IPSocket::getaddress("localhost")) => 2130706433 (Ruby; require "socket")

なんかわざわざ書くほどじゃないけど、俺は激しく忘れっぽいのよね!

でもこのロングIPさ、xrea とかでやるとうまくいかないね。ただの IP アドレス指定だから、バーチャルホストうんたらで無理くさい。知らないけど。

  1. トップ
  2. prog
  3. えくまたん
▲ この日のエントリ