« 2006年8月 | トップページ | 2006年10月 »

2006年9月27日 (水)

検索サイトから消す

SEO全盛で、いかに検索サイトで上位に表示させるか!が商売になる時代にこういう事を考える人っているのでしょうか。

とりあえずYahooとGoogleとWindowsLive(MSN)を考えれば、他サイトはだいたいこれらの検索ロボットの結果を利用しているみたいなので、

日本では一番人気のYahooはhttp://help.yahoo.co.jp/help/jp/search/indexing/index.html(Yahoo!ヘルプサイト管理者向け)

日本で二番手のGoogleはhttp://www.google.co.jp/intl/ja/remove.html(Googleページの削除)や左のリンク先が参考になるかも

WindowsLiveサーチ(MSN)はトップページhttp://www.live.com/からヘルプへ飛んで、左フレームの「Windows Live Search」と表示されているところでWindows Live Search Webmastersを選んだら、FAQが出ますし、検索語句を入れても良いと思います。

いちおう他のポータル検索サイト

gooはhttp://help.goo.ne.jp/door/crawler.htmlでもhttp://help.goo.ne.jp/door/url.htmlを見るとGoogleを使っている様子InfoseekはGoogle検索がデフォルト。Infoseek独自の検索についてはhttp://www.infoseek.co.jp/Help?pg=help_touroku.htmlに。FreshEyeはhttp://www.fresheye.com/guide/info/faq.html  などなど

でも、YahooとGoogleとWindowsLive(MSN)でほとんど用が足りるように見えます。

私自身の検索は思いっきりGoogle派。Yahoo検索を使うのは、誰かに検索して。というときにYahooといえばほぼ間違いなく通じるので、どんなサイトがどの辺りに表示されるか前もって知りたい時。WindowsLiveはMSN時代はFirefoxでアクセスするといちいち警告出てたので(WindowsLiveは出ないようです)使ってません。

ユーザーIDはGoogle,Yahoo!,WindowsLiveとも持っていますが、日常的に使うのはGoogle。Gmailが開放されてからはほんとに一日中GoogleのどれかのサービスがFirefoxのタブにあります(スプレッドシートはまだ使ったこと無いです)。Yahooはブリーフケースを使いたいためのID取得で、MSNは理由不明(WindowsMessenger使いたいから?)。

| | コメント (0) | トラックバック (0)

2006年9月23日 (土)

アクセス解析(生IP)JavaApplet編

前回記事にも書きました生IPの方法でJavaAppletを使う方法を

>参考までにJavaAppletでやる方法はhttp://tuka.s12.xrea.com/index.xcg?p=CGI#p12とかhttp://www.nurs.or.jp/~sug/homep/spam/spam4.htmにあります。

と書いてました。でxrea.comのページを丸々いただいてやってみました。圧縮したファイルがあるようなことを書いておられましたが、私はそれをとってくることが出来なかったので、表示されているソースをそのまま貼り付け。JavaはそのままjavacでOK。Perlはパスとホスト名やCGIへのパスなどを設定したら問題なし。

で、クライアントCGIへアクセスしてみたところ、ちゃんと通信できました。
FirefoxでもIEでも大丈夫、テトリスのためにだけ立ち上げるOpera(失礼?)でさえも警告など表示されずに使えました。ただ、やはりJavaを起動するので非常に重いです。

ところで、Javaってインストールしなくても使えるんでしょうか。私はBorlandC++CompilerとjavaSEとActivePerlとFireFoxはまず最初に入れるので、PCはインターネットしか使わない。という方の環境は全然想像できないのですが、IE見てもJavaVMが・・・と書いてあるので使えるようになっているのでしょうね。ただ、デフォルトがどうなのか?というのと大抵のサイトでは必要ない機能で、設定で無効にできるので、Javaを使わないと非常に不便なサイトにするなどの工夫はやはり必要なのかもしれません。

GmailでGoogleアカウント取ったのでホームページをPersonalized Homepageにしてるのですが、今日見たらいきなり英語が表示されてびっくりしました。英語は苦手なもので(プログラミングの解説なんかは雰囲気で読めるのですが)。よく見たらタブが出現してました。いろんな場合に分けてページを使い分けられるので良いのでしょうね。

でもGoogleさん、そんなことをする前にPersonalized HomepageでGmailやCalendarやニュースなどを表示してますが、それらをクリックしたときに別ウィンドウで表示されるようにしてくれませんかねぇ。ブラウザのHomePageボタンを押したらいいんですが、複数タブをホームページに設定しているので、そういうわけにも行かないんですよねぇ。Gmail見た後にPersonalized Homepageへ戻るのがなかなか面倒で。

Calendarだけは別のサービスへのメニューが左上にでているのですが、

| | コメント (0) | トラックバック (0)

2006年9月21日 (木)

アクセス解析(生IP)telnet編

アクセス解析。プロクシとか生IPとかそういうところが知りたくなるもので、

プロクシって何?って事は調べていただくとして、アクセスがプロクシ経由かどうか。いろいろな判断方法があると思います、解析を見ていてホスト名にIPアドレスの羅列があったり複雑なホスト名の場合は多分プロクシ経由じゃない。IPアドレスから名前が取り出せればプロクシだとしても出所がはっきりしているプロクシでしょう。他にはサイトアクセスしたときにプロクシ特有の環境変数を取り出せる事があるので、そういう環境変数をチェックする。

http://www.ne.jp/asahi/setuna/multi-factory/index/env.html
http://www.remus.dti.ne.jp/~shenron/secure/cgi_script/
http://blog.arasitaisaku.com/?cid=21833
などに書いてあります。

プロクシはプロバイダが用意していたり、プロクシの杜でさがして見てください。で、診断くんhttp://www.futomi.com/cgi-bin/env_var/your_env.cgiなど環境変数をチェックできるサイトいろいろあるのでそこへアクセスしてみてください。でもそれらの環境変数を吐かないプロクシも結構あるので、ホスト名や逆引きの可否なども含めて判断する必要があります。それと、Operaでのアクセスはこういう場合はたちの悪いことにプロクシと見間違えるような環境変数を吐くので要注意です(OperaはデフォルトでIEやMozillaに化ける機能を提供しているので環境変数だけ見てIEやMozillaのアクセスでプロクシ経由だと思っていたら、Operaからのアクセスで生IPだということもあります)

で、ADSLやら光とかいうご時世にサイトアクセスの高速化やネット資源の有効利用を考えてプロクシを使う人なんて居ないでしょうから、どんな理由があったとしても自分のアクセスを隠したいという目的での利用がほとんどだと思います。生IPで掲示板やブログなどの荒らし行為などをするならプロバイダがわかるのでそのプロバイダに連絡できますが、プロクシの杜で紹介されているような公開プロクシの場合は連絡してプロクシのログを取得など一苦労でしょう。そういうときに自力で生IPを抜こうということで、いろんなサイトで紹介されている方法としては

上にも挙げましたが、---CGI in Secure ---に書かれているようにJavaAppletやtelnet,WindowsMediaPlayerなどhttp以外のプロトコル(IEならツール-インターネットオプション-接続-設定-プロキシを設定するのチェックをして詳細設定で自動でプロキシが設定されるプロトコル以外)を使うことでプロキシを通さずにアクセスさせるという方法になるようです。とりあえず今回は手軽そうなtelnetを使ってやってみました。もちろんtelnet.exeが立ち上がるので何かいつもと違うというのは見ている人にはわかります。しかも私の環境なのですがNortonInternetSecurityを使っているとtelnetで通信する前に警告が出てしまいます。 ブラウザがFirefoxならtelnet立ち上げる前に外部プログラムですが?と警告が出ますので、telnetでIP抜く時はアクセスログなどでUAやリファラーの状況を見た上でやった方が良いと思います。もし警告が事前に出そうな環境に思えるなら、JavaAppletを使ったやり方のほうが良いかもしれません。少し読み込みが長くなり違和感あるのと、Javaを無効にしているかもしれませんが、警告画面の心配はしなくて済むように思います。

PerlのソースコードはUse telnet[telnet 雑技室]にその名もズバリ「telnetプロトコルによるIP抜き」という項目内にリンクがあります。ソースコードをそのままコピーしてPerlのパスとホスト名とファイル名を変えてtok2サーバーで試したところ、全然ダメ。その理由はポートが閉じていたというお粗末なものでした。ポートを決め打ちしてなんどか挑戦したところ、大きめのポート番号を使えば、ソース自体に何の手を加えることもなく生IPが表示されました。

参考までにJavaAppletでやる方法はhttp://tuka.s12.xrea.com/index.xcg?p=CGI#p12とかhttp://www.nurs.or.jp/~sug/homep/spam/spam4.htmにあります。

自由にポートを空けられてアクセスログを見れたり常駐でそのポートを見張るソフトを入れられるなら、imgタグやframeタグなど強制的に読もうとするタグのsrc="telnet://ホスト名:ポート番号"などとするが手っ取り早いように思います(http://2.csx.jp/~stwalker/proxy.htmの真ん中辺り参照)。

で、しばらくこのコードを眺めていたところ、
http://www.remus.dti.ne.jp/~shenron/secure/cgi_script/#2-1
http://hp.vector.co.jp/authors/VA003991/kouza/senior/kouza_socker_perl.html
http://www.7key.jp/nw/study1.html
http://kansai.anesth.or.jp/gijutu/perl/man-socket.php#f_socket

この辺りに書いてある、一般的なPerlでTCP/IPサーバーのソースと同じであることに気づきました。結局普通にポートを監視するようにして、それに対してHTMLの仕組みで自動的にアクセスさせてアクセス元を取り出しているだけなのです。この自動でアクセスさせるところがミソですね。

プロクシの話題だけじゃないですが、ネットスキルアップ講座は面白いと思いました。imgタグにフロッピーのパス(A:\)を入れて嫌がらせするなんて思いもしませんでした。アクセス解析と組み合わせてJavaScriptで不心得モノのIPに対してこういうタグを書き出すようにするのも面白いかもしれません。後が怖いですが。でも最近のPCには残念ながらフロッピー付いてなかったりするんですよね。

今回は生抜きする前に荒らしが収まったので、実際には使ってませんが、次回のためにメモメモです。JavaApplet利用したものの方が目立たずできそうなので、こちらもやってみようと思ってます。

| | コメント (0) | トラックバック (0)

2006年9月14日 (木)

アクセス解析(露骨に拒否)

またまたアクセス解析ネタ

参考にしたのはhttp://www.broadband-xp.com/hidesource/cgi.html

CGIの呼び出しをここに書いてあるように
<script type="text/javascript" src="js.cgi"></script>
にして、CGIでprintを使ってJavaScriptを書き出すように。

で、CGIの最初の出力も
print "Content-Type: application/x-javascript\n\n";
から始める。
そうするとCGIでIPやUserAgentなどの値を使ってアクセスを拒否したい(粘着系の方々)相手を絞ることは可能なはず。その辺はCGIでも頻出の条件分岐とか正規表現ですね。

で、履歴に残したい場合はCGIでprint文を使って

document.write("<img src='./acs.cgi?");
document.write(document.referrer + "' width=1 height=1>");
を出力すれば良く、

拒否したい相手なら、見てるサイトに近いデザインのページに飛ばす(粘着系が新たなターゲットを見つけたら申し訳ないですが)とかブログサイトのトップページへ飛ばすとか。飛ばすためにはCGIのprint文でLocation.hrefを書き出せば解決。

いちおうこれで完成ですが、このままではアクセス元を調べるのに1回、ログ用に1回。で、合計2回CGIを呼ばなければいけないことになり、なんか釈然としない感じ。

それで、CGI呼び出しを元に戻して、1回の呼び出しで済むように。

<script type="text/javascript">
<!--
document.write("<script type='text/javascript' src='./acs.cgi?");
document.write(document.referrer +"'></script>");
//-->
</script>

ただ、本文中にこれを入れると、その時点まで読み込んだ後で別のページへ行くことになるので、ものすごくわかりやすく拒否されてる感があります。出来る限り早い時点で処理されるようにするべきです。

もちろんJavaScriptを無効にしているとなんの意味もありませんけど。

 

| | コメント (0) | トラックバック (0)

2006年9月 7日 (木)

アクセス解析。呼び出しの工夫

前々回にアクセス解析。まるで教科書どおりのようなCGIとJavaScript

<script language="javascript">
<!--
document.write("<img src='http://CGIを設置したアドレス/CGIファイル名?");
document.write(document.referrer + "' width=1 height=1>");
//-->
</script>

で作りましたが、そのブログ主がアクセス解析あるよ。とわかる風な書き方をしてしまったためか、書き込みに飽きたからなのかわかりませんが、最近は挑発的なコメントを書いていた人が書かなくなったようです。確かにこれじゃあ見ただけでわかるよなぁ。と思います(imgタグでcgiですから)。タグとか見たこと無ければ<img>やreferrerとかさっぱりわからないでしょうし、そもそもHTMLソースを見よう(見れる)とは思わないでしょうから、飽きたか、それなりの危険察知能力のある人なのか、多少HTML周りを理解しているんでしょう。

そこで、ちょっとわかりにくい呼び出しは無いのかなぁ。と探してみたところ、これならわかりにくいかな。というのを見つけました。

http://www.melma.com/backnumber_29889_3220974/です。この次の記事も同様ですが、imgタグとImageオブジェクトを連動させています。ということはimgタグではほんとにイメージファイルを呼び出せば良い。ということです(imgタグひとつに画像ひとつで違和感ないでしょ?)。それに加えてファイル名や別サーバーの場合のURLについては、特徴的な部分については、JavaScriptで文字コード変換のString.fromCharCodeとかescape,unescapeを使えば、さらにわかりにくいでしょう。escapeはいかにもURLっぽいのがちょっとね。というところですが、%の部分や特定の文字を置き換えて、正規表現で戻してunescapeとか、、、(そこまでするかなぁ)例えばサイト名はちゃんとhttp://~~と書いてファイル名について同名のjpgとcgiファイルを置いてImageオブジェクトの呼び出しの時に加工するとか。

| | コメント (0) | トラックバック (0)

BlogWriteから投稿(HEAD部分に文字を入れたい)

So-netブログにSEO対策したい。
ちょっと違うのは、SEO対策でも検索エンジンのキャッシュファイルを削除したいのです。検索につかまりやすいブログが今回は災いになってしまったので、YahooやGoogleのキャッシュファイルも消して跡形なくしたいのです。

だけどサブドメインじゃないからルートにロボット用ファイルを入れるわけにもいかないし、METAタグも入れられそうに無い。
で、AtomAPI使ってみたらどうかな?もうちょっと深いところまでさわれないかな?とかすかな希望を持って探していたらBlogWriteに出会ったと言うわけ。

http://www.witha.jp/BlogWrite/

いままでは普通にブラウザから書き込んだり、メールで投稿してましたが、特にブラウザからはどこかのページを見ようとして間違って編集ページでURL入力してしまったら、さあ大変。ゼロからやり直さなければいけなくて何度日の目を見なかった記事があったか。というワケで、これはこれとしてとりあえず機能縮小無料版。あっさりインストール&初期設定終了。

追記編集やキーワードなどイマイチよく分からない項目はありますが、それもおいといて、テスト投稿。

調べて回った挙句にMETAタグ使えそうにないので、So-netに聞いてみたところ、広告タグなどの一部タグは使用禁止で、METAタグはそれに該当しているから挿入できない。とのこと。予想通りというか引導渡されたというか・・・

ココログはサブドメインでファイルを任意の位置に入れられるのでMETAタグ使えなくてもロボット用ファイルで十分対応できるのですが。

BlogWriteを見ている限りヘッダー部分に挿入できる方法は無さそう。とりあえずキーワードに「ほげほげ」、概要に「げほげほ」と入れてみますが反映されるかどうか。

 

| | コメント (0) | トラックバック (0)

2006年9月 3日 (日)

アクセス解析(IP知りたい)

知り合いのブログでアクセス解析を入れたい必要が起こったので、探すの面倒なので作ってみました。とりあえず知りたいのは相手のIPアドレス。ダイヤルアップが当たり前の時代にはプロバイダを特定する程度のことしか出来なかったですが、今はADSLや光でほとんどIPアドレスが変わらない時代。翌日に同じIPアドレスでアクセスがあった場合に、100%の確信は持てないと思いますが、ほぼ同一人物だと考えてもはずれじゃないと思います。

#!/usr/local/bin/perl

# 1.REQUEST_METHODをチェックしてリクエストプロトコル(GET or POST)を判断する
if( $ENV{'REQUEST_METHOD'} eq "GET" ) {
# 2.GETであれば、QUERY_STRINGからクエリを読み込む
    $buffer = $ENV{'QUERY_STRING'};
} else {
# 3.POSTであれば、CONTENT_LENGTHを使用してリクエストのサイズを調べ、
# 標準入力からクエリを読み込む
    read( STDIN, $buffer, $ENV{'CONTENT_LENGTH'} );
}
($sec,$min,$hour,$day,$mon,$year,$wday,$yday,$isdat) = localtime(time);
$year+=1900;
$mon++;
$date="$year\/$mon\/$day $hour\:$min\:$sec";

$host = $ENV{'REMOTE_HOST'};
$ip = $ENV{'REMOTE_ADDR'};
if ($host eq '' || $host eq $ip)
{
    $host = gethostbyaddr(pack("C4", split(/\./, $ip)), 2) || $ip;
}
$logfls = sprintf("acs%02d.log",$day);
if (-e $logfls)
{    open (LOGFILE,">>$logfls");}else{open (LOGFILE, ">$logfls");}
flock (LOGFILE,2);
####printf(LOGFILE "%s R_ADR=%s R_HST=%s H_UA=%s BRO_REF=%s H_REF=%s\n",$date,$ip,$host,$ENV{'HTTP_USER_AGENT'},$buffer,$ENV{'HTTP_REFERER'});
printf(LOGFILE "%02d\/%02d\/%02d %02d\:%02d\:%02d\tR_ADR=%s\tR_HST=%s\tH_UA=%s\tBRO_REF=%s\tH_REF=%s\n",$year,$mon,$day,$hour,$min,$sec,$ip,$host,$ENV{'HTTP_USER_AGENT'},$buffer,$ENV{'HTTP_REFERER'});
close LOGFILE;
exit;

非常に単純。Perlの基礎編みたいなCGIですが。一応日付によって記録ファイルを変えることでファイルのサイズを小さくしています。とりあえず相手の情報でとれるものは取ろう。ということで、UserAgentまで記録してます。これをやめるとサイズは小さくなるのですが。

設置側は

<script language="javascript">
<!--
document.write("<img src='http://CGIを設置したアドレス/CGIファイル名?");
document.write(document.referrer + "' width=1 height=1>");
//-->
</script>

これまたよくある呼び出しですね。

NortonInternetSecurityを使っているとHTTP_REFERERは遮断されているので、javascriptも付けてます。こうすることで、BRO_REFページからH_REFページへ行ったということがわかり、Nortonを使っていても少なくとも前にどのページを見ていたか。ということがわかります(もちろんJavaScript無効になっていたら無理ですが)。

ついでにログに残ったIPやホスト名から地域を調べるには
http://www2.arearesearch.co.jp/ip-kensaku.htmlhttp://www.iphiroba.jp/index.htmlなどが便利です

| | コメント (0) | トラックバック (0)

« 2006年8月 | トップページ | 2006年10月 »