Tuesday, July 31, 2007

yetibot@naver.com対策

スポンサードリンク

先日robots.txtを試してみたYetiさんですが、結果から先に書きますと、まったくダメでした。理由は(1)Crawl-delayはまったくみていないみたいで、クロールの間隔はまったく変わらず (2) cssを読みにくるひとは"Yeti"ではないので、robots.txtは関係ないみたい、ということでぜんぜんダメ。

というわけでなにかちがうことを考えないといけないのですが、そのまえにまず現状を確認しておきましょう。例えば昨日のアクセスパターンは次のようなかんじ。


....
61.247.217.33 [30/Jul/2007:03:02:06 /tags/%E3%83%81%E3%82%A7%E3%82%B9
61.247.196.54 [30/Jul/2007:03:02:17 /css/stdstyle.css
61.247.217.37 [30/Jul/2007:03:02:31 /words/dead/rock
61.247.196.35 [30/Jul/2007:03:02:41 /css/stdstyle.css
61.247.196.26 [30/Jul/2007:03:02:54 /css/stdstyle.css
61.247.217.37 [30/Jul/2007:03:02:56 /tags/geena
61.247.196.54 [30/Jul/2007:03:03:12 /css/stdstyle.css
61.247.217.36 [30/Jul/2007:03:03:23 /words/dead/girls
61.247.196.39 [30/Jul/2007:03:03:38 /css/stdstyle.css
61.247.217.33 [30/Jul/2007:03:03:59 /words/%E3%83%91%E3%83%83%E3%82%BD/cm
61.247.196.37 [30/Jul/2007:03:03:59 /css/stdstyle.css
61.247.217.35 [30/Jul/2007:03:04:48 /words/youtube/%E3%83%93%E3%83%AA%E3%83%BC%E3%82%BA
61.247.217.37 [30/Jul/2007:03:04:49 /words/%E3%83%91%E3%83%83%E3%82%BD/%E4%B8%AD%E5%8F%A4%E8%BB%8A
61.247.196.40 [30/Jul/2007:03:04:50 /css/stdstyle.css
61.247.196.54 [30/Jul/2007:03:04:54 /css/stdstyle.css
61.247.217.35 [30/Jul/2007:03:05:01 /words/yahoo!/japan
...(以下略)...

7/30 午前3時から7/31午前3時までの24時間で受けた全リクエスト10796中、6804がYetiさんです。占有率63%。1分あたり4.7リクエスト。本体とcssとを組にして読んでいきますから1分あたり2.36リクエストx2ということですね。baiduさんですら2分に1回なのにねえ...よみすぎー。

というわけでまず、cssを禁止にしちゃう。Naverからcssを読みにきているIPアドレスの一覧は以下の通り。


  65 61.247.196.11
  82 61.247.196.13
  86 61.247.196.14
  59 61.247.196.15
 107 61.247.196.17
  84 61.247.196.18
  90 61.247.196.19
 100 61.247.196.20
  87 61.247.196.21
  63 61.247.196.24
  92 61.247.196.25
  82 61.247.196.26
 111 61.247.196.27
 105 61.247.196.28
  42 61.247.196.29
  72 61.247.196.30
  89 61.247.196.31
 100 61.247.196.32
 113 61.247.196.33
 112 61.247.196.35
  84 61.247.196.36
  78 61.247.196.37
  64 61.247.196.38
 100 61.247.196.39
  56 61.247.196.40
 105 61.247.196.43
  90 61.247.196.44
 118 61.247.196.46
  69 61.247.196.47
  97 61.247.196.48
  96 61.247.196.49
  98 61.247.196.50
  80 61.247.196.51
  81 61.247.196.53
  56 61.247.196.54
  83 61.247.196.55
  55 61.247.196.56
 107 61.247.196.57
  97 61.247.196.58
  74 61.247.196.59

おおすぎー ^^;; 先頭の数字は昨日1日ぶんのアクセス回数です。ぱっと見、61.247.196.*からの ようですからそのように指定しても いいですが、それだとNaverが使うIPアドレスをぜんぶ網羅できていないかもしれませんね。ここはひとつ、IPアドレスの割当をちゃんと調べてみましょう。whois してみます。


% whois 61.247.196.58
...(中略)...
inetnum:      61.247.192.0 - 61.247.223.255
netname:      NHN-NET
descr:        NHN
country:      KR
...(以下略)...

NHNっていうのは、Naverを運営している会社の名前です。61.247.192.0 - 61.247.223.255の範囲がNHNに 割り当てられていることになっていますね。念のため、参考文献[1]をみてみます。ここでは国別の割り当てIPアドレスリストがぜんぶみられます。便利ですね。韓国のリストを見ると、上記に該当するのは「61.247.192.0/19」これですね。これをまるごとNHNがもらってつかってるみたい。ですから、 css/.htaccessに次のように書きます。


order allow,deny
allow from all
deny from 61.247.192.0/19

さらに本体のアクセスも制限しちゃう。本体にアクセスに来ているのは以下のIPアドレス。


 717 61.247.217.33
 673 61.247.217.34
 637 61.247.217.35
 663 61.247.217.36
 685 61.247.217.37

同じように、先頭の数字は昨日1日のアクセス回数です。こっちはぜんぶ禁止にするのは つまらないので(?)、5兄弟の4人だけ禁止にしちゃう。/ の .htaccessにこう書いておく。


# reject naver kids
order allow,deny
allow from all
deny from 61.247.217.33
deny from 61.247.217.34
deny from 61.247.217.35
deny from 61.247.217.36

これで有効なページ読み出し回数が1/10になるはず。ただアクセスそのものがなくなるわけじゃなくて、 アクセスに対して403(Forbidden)が返却されるようになるだけなので、Yetiさんが気にせず読みに きまくったらログ上はうざいことには変わりないですね。ただ、 例のサイトはアクセスされたページをDBにキャッシングして いるので、あまりガンガンアクセスにこられてもこまっちゃう。あんまりアクセスがないのも困るけど。 その点からは1/10ぐらいで丁度いいかも ^^;

参考文献

  1. Blackholes.us

No comments: