というわけで、colabv6 はじめてみました。

colabv6

おかげで、いろいろなことがわかってきました。まずはこれをご覧ください。KAME、踊ってますか?

kame
KeyValue

ここ livedoor blog はv4オンリーなのに、KAMEが踊っていて逆に驚いた人もいらっしゃるかも知れません。Mac OS X を含む*BSDでかつv6 reachableな環境から見ている方はそうなっていると思います。

これ、実は「接続先がデュアルスタックの場合、どちらを優先するか」のテストになっています。このページはデュアルスタックなapi.dan.co.jpからJSONPをとってきているのですが、その際どちらのプロトコルを使っているかというのをこれでチェックできるわけです。

*BSDの場合は、ほとんどの場合IPv6が優先されるはずです。たとえ元ページがv4でも、そこからのリンクがデュアルスタックの場合、IPv6が利用されるので、kAMEは踊るわけです。

Windows XPの場合、逆に IPv6 は IPv4 アドレスがない場合にのみ使われるようです。たとえ元ページがv6でも、KAMEは踊りません。このことはv6オンリーの http://colabv6.v6.dan.co.jp/ にアクセスしてみればわかります。

ほかにも色々と興味深いことがわかりましたが、それらはおいおい書いていきます。

Enjoy!

Dan the Dual-Stack Blogger

Server Source:

Client Source:

runJSON = function(name, func){
    if (! this['JSONP']) JSONP = {};
    JSONP[name] = func;
    (function(d, uri){
        var s = d.createElement('script');
        s.charset = 'UTF-8';
        s.id = s.src = uri;
        d.body.appendChild(s);
    })(document, 'http://api.dan.co.jp/jsonenv?c=JSONP.' + name);
};
runJSON('kame', function(json){
    var img = document.getElementById('kame');
    img.src = json['REMOTE_ADDR'].indexOf(':') !== -1
        ? 'http://colabv6.dan.co.jp/kame-anime-small.gif'
        : 'http://colabv6.dan.co.jp/kame-noanime-small.gif';
});
runJSON('table', function(json){
    var d = document;
    var tbody = d.getElementById('jsonenv');
    for (var p in json){
        var tr = d.createElement('tr');
        var td = d.createElement('td');
        td.appendChild(d.createTextNode(p));
        tr.appendChild(td);
        td = d.createElement('td');
        td.appendChild(d.createTextNode(json[p]));
        tr.appendChild(td);
        tbody.appendChild(tr);
    }
    //alert(uneval(json));
});