NULL::something

Login via flickr, はてな, TypeKey.

2004-07-11

えくまたん

ロング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 アドレス指定だから、バーチャルホストうんたらで無理くさい。知らないけど。

Comments (0)

Trackback URI: http://lowreal.net/logs/2004/07/11/3.trackback

NULL

RSS feed meter for http://lowreal.net/logs/latest

Alternates

  1. RSS 1.0
  2. Atom 1.0

Generated with Taglibro

この日記は Taglibro と呼ばれる XML ベースの XSLT をテンプレートとして使ったシステムを使っています。現在の Taglibro は Ruby, ruby-xslt, libxml-ruby による実装です。ソースコードはとりあえず公開していません。