萌えない2002年2月

TOP萌えないだいありぃ>萌えない2002年2月
セガ公式サイトとUserAgent

毎回UserAgentネタってどうかとは思うんだけどね…
セガ公式サイトに行ったことはありますか?
実はセガ公式サイトのトップページには少なくとも二種類あるのですが、ご存知だったでしょうか?

例1(2002/02/25現在)
例2(2002/02/25現在)

例1は通常の場合で、UserAgentを弄っていたりマイナーブラウザを使用していたりすると例2が表示されます。
判定方法は「Mozilla」の文字列を含んでいるかどうか、といったところでしょうか?
試しにUserAgentを「Mozilla」としてアクセスすると例1が表示されます。
このUserAgentによるTOPページの振り分けのおかげで、いつもJustViewを騙っている僕としては勝手に携帯端末だと認識されてしまい、不便です。

JustViewもそろそろ潮時かなぁ…

DreamPassportとCOOL ONLINEの罠

むきゃ(どりーむきゃすと)用のDreamPassportって奴はウィンドウが一つしか存在しえないので物理的にポップアップ広告が表示できないんですよ。
そのくせ、JavaScriptをサポートしています。
そんなわけで、COOL ONLINEではDreamPassportでアクセスした場合、JavaScriptが有効であるにもかかわらず、埋め込み型広告が表示されるように細工がしてあるようです。
むきゃとDreamPassportを持っている人は一度試してみましょう。

で、今回のテーマはどうやってDreamPassportを判別しているのか、ということ。
結論から言うと、UseAgent見て判別しています。
試しにUseAgentを「Mozilla/3.0 (DreamPassport/3.0)」あたりを騙ってCOOL Online提供のサイトに行ってみると、JavaScriptがONになっていても埋め込み式の広告が表示されるはずです。
では、ソースを見てみましょう。

<html>

 〜本体〜

</html>

<BR><BR>
<CENTER><table width="528" border="0" cellspacing="0" cellpadding="0"><tr><td width="468" height="84"><A HREF="http://ad4.cool.ne.jp/link/?media=001" TARGET="_blank"><IMG SRC="http://ad4.cool.ne.jp/img/?media=001" BORDER="0"></A></TD><TD width="60" height="84"><A href="http://www.cool.ne.jp/" target="_blank"><IMG src="http://city.cool.ne.jp/images/cool_1.gif" width="60" height="60" border="0"></A></TD></TR></table></CENTER>

つまり、サーバで取得できるHTTP_USER_AGENTを利用して判別した後に広告の挿入方法を決定している、とまぁそういうわけです。

ところで、DreamPassportはUseAgentこそ「Mozilla/3.0 (DreamPassport/x.x)」ですが、別にSEGAオリジナルのブラウザというわけではなく、ACCESSのNetFrontなわけですよ。
UseAgentの通り、Mozilla3.0ベースらしいので件のtableバグも再現します。

table要素にalign="right"はやめよう…

table要素とCOOL ONLINEの罠

また微妙に古いネタを引っ張り出すことになるんですけどね。

裏サイファーメディアこんなことになるってがあったんですけど……
その場では、Scriptを切らなければOKということで解決してしまったらしいんですが、根本的な解決になっていないような気がするので調べてみたわけですよ。
そもそもCOOL ONLINEの広告はポップアップ式の場合

<SCRIPT LANGUAGE="JavaScript">
<!--
function popup十桁の数字() {if (parent.name != "cool_advertisement") {window.open("/ad/?bg=&bc=","cool_advertisement","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=548,height=84");}}popup十桁の数字();
// -->
</SCRIPT>
<html>

 〜本体〜

</html>

<NOSCRIPT>
<BR><BR>
<CENTER><table width="528" border="0" cellspacing="0" cellpadding="0"><tr><td width="468" height="84"><A HREF="http://ad4.cool.ne.jp/link/?media=001" TARGET="_blank"><IMG SRC="http://ad4.cool.ne.jp/img/?media=001" BORDER="0"></A></TD><TD width="60" height="84"><A href="http://www.cool.ne.jp/" target="_blank"><IMG src="http://city.cool.ne.jp/images/cool_1.gif" width="60" height="60" border="0"></A></TD></TR></table></CENTER>
</NOSCRIPT>

…となっているのですよ。
手っ取り早く説明するならば…

Scriptが有効ならばポップアップ式広告を表示。
無効の場合、最後にtable要素で囲んだ広告を挿入する。

となっています。
…html要素の外に書くなヨ。
それはさておき、件の症例はScriptを切ったことによって最後に挿入されるはずだった広告が何故か変な場所に表示されてしまったわけですな。
では何故変な場所に挿入されることになったのか?
これを見て下さい。
特定の環境でしか確認していませんが、テーブルが二つ重なって見えると思います。
つか、件の症状が起きてこっちで再現しないとしたら、そのブラウザを教えて欲しいくらいだ。
…と思ったら、Liteだとwidth属性を無視して重ならないように頑張っているなぁ。
ソースを見てもらえればわかると思いますが、何の変哲も無いテーブル要素が二つ並んでいるだけです。CSSを利用して表示位置を指定しているわけでもありません。

ポイントは一つ目のtable要素で指定されていて二つ目では指定されていない属性「align="right"」です。
これを取り去ることで普通に表示されるようになります。不思議ですね〜。
もちろんHTMLの仕様にこんなものは無いはずなので明らかにバグな筈なのですが、IE5Mozillaに加えOperaNetFrontでも再現するバグというのも珍しいと思います。
もっとも、JustView1.2(3.x持ってないんだわ)やNCSA Mosaic3.0Wbrowserでは再現しないので、Mozilla3.x以降のcompatibleブラウザ特有の問題なのかもしれません。

ではalign="right"を使わずに右に寄せるにはどうすればよいか?

左にダミーのテーブルセルを配置すればHTML3.2的にはOK。

HTML4.0以降の場合は?

左側にCSSでマージン確保するか、DIV要素で囲んだ後にCSSでtext-align: rightか。
つか、CSS勧告後の規格であるHTML4.0以降でレイアウトにtable使うなよ…

MSN Messengerとファイル転送の謎

僕のネット接続環境はCATVモデムからルータを通して接続しているわけなのですが、先日、MSN Messengerを使っていてファイル転送ができないということがありました。
そもそもルータという奴はNAT機能がついているもので、基本的に外部からLANにはアクセス出来ないようになっています。このおかげで様々なネットワークアプリケーションにおいて昨日に制限を受けたり全く使い物にならなかったりします。
そこで特定のポート宛てのパケットを特定のLAN内のPCに再配送する機能が大抵のルータには備わっています。
そこで大抵のアプリケーションではマニュアル等に「どのポートを使用して通信を行っているのか」ということが明記されているものなのですが、Messengerのヘルプにはそのような記述が全くありません。
そこで僕としてはルータを外した状態でファイル転送を行うことで、どのポートを使用しているかを調べてルータの設定を行うのですが、これがうまく行きません。
そこで初めてwebで同志達の情報を求めるわけですが、どうやら特定のルータでないとファイル転送が出来ないらしいとのこと。

あ〜あ、はずれのルータ引いちまった…

というより、むしろMessengerの仕様が腐ってると言った方が正しい気もします。
全てのユーザがグローバルアドレスを取得できるとは限らないのに、そのようなユーザのことを全く考えていないMSの姿勢が問題だと思います。

と、まぁ、全く面白くないコラムをだらだらと書いたわけですが、そんなことはどうでもいいんです。リジュームできないMessengerなんて使わずにIRC使えばいいんだから。

そこで、Messengerのウィンドウって他のユーザはどこにフロートさせているのだろうか、と。
僕の場合は…

広告は画面外に追いやるよね?

こんな感じ。

これって普通だよね?

TOP萌えないだいありぃ>萌えない2002年2月
©2002 Namany

[efCount 2.1.2(SSI)]ログを開くことが出来ませんでした