素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

忍者アクセス解析をブロックする

Adblock Plus用。

/^http:\/\/\w+\d+\.(?:k(?:a(?:g(?:e(?:(?:nnotuk|bo-sh)i\.com|-t(?:sun|or)a\.com|chiyo\.net)|inawa\.jp)|n(?:(?:-(?:suk|b)e|e-tsugu)\.com|(?:ashibari|paku)\.jp)|r(?:a(?:k(?:uri-yashiki|asa)|matu)\.com|ou\.jp)|c(?:houfuugetu\.net|chaokkana\.com)|ku(?:kaku-sikajika|rezato)\.com|sa(?:buta\.net|jizo\.com)|tsu-(?:yori|ie)\.com)|i(?:(?:(?:modamesh|tuneb)i|risute-gomen|bisuwokaesu)\.com|n(?:byoubu\.com|ugoshi\.net)|yo-masa\.com)|u(?:(?:m(?:ogakure|adori)|(?:ch|t)inawa)\.com|sa(?:rikatabira\.jp|kage\.com)|rushiunai\.jp)|o(?:n(?:ohashigure\.com|jiki\.jp)|(?:borezakura|iwazurai)\.com|jyuro\.com|musou\.jp)|e(?:n(?:-(?:shin\.net|nyo\.com)|kenpa\.net)|muridama\.com|sagiri\.net)|yarame\.com)|s(?:h(?:i(?:(?:r(?:i(?:kakusazu|agari)|onuri)|(?:dareyanag|teyattar)i|(?:chihuk|syo)u)\.com|m(?:(?:e-saba|o-yake)\.com|azu-yoshihiro\.net)|k(?:isokuzekuu\.net|anosuke\.net)|n(?:obiashi\.com|-gen\.jp))|akunage\.net)|o(?:(?:k(?:owonantoka|ushinbutsu)|(?:denoshit|nnabakan)a)\.com|r(?:egashi\.com|agoto\.net)|udesune\.net)|a(?:(?:n(?:kinkouta|nasub)|ra(?:-yashik|sh))i\.com|-(?:suke\.com|kon\.net))|y(?:(?:a(?:(?:kuhat|nar)i|rasoujyu)|o(?:gyoumujou|utikubai))\.com|uriken\.jp)|u(?:ki(?:makaze\.com|-ari\.net)|ichu-ka\.com|ppa\.jp)|e(?:n(?:goku-jidai|syuuraku)\.com|ssya\.net)|iromuku\.com)|o(?:(?:h(?:(?:yakudo-mair|itash)i|u(?:da|gi)|aguro)|(?:m(?:egum|ik)|furegak)i|o(?:ban-koban|tugomori)|daikansama|sonae)\.com|n(?:(?:ushi(?:mowaruyonou)?|asake)\.com|gaeshi\.biz|mitsu\.jp)|k(?:oshi-yasu\.(?:com|net)|unohosomichi\.net|itsune\.com)|b(?:i(?:himo\.com|jime\.net)|(?:oroduki|unko)\.com)|t(?:o(?:(?:girisou|shiana)\.com|do\.net)|eage\.net)|(?:-ok|jar)u\.jp|iran\.org)|h(?:a(?:n(?:a(?:g(?:asumi\.net|umori\.com)|(?:mizak|bi)e\.com)|-be\.com|nnari\.com)|(?:t(?:iju-hatiy|agashir)a|gewasi|haue)\.com|ri(?:ko\.com|sen\.jp))|i(?:(?:(?:goyom|yamug)i|roimon)\.com|s(?:a-hide\.com|[hy]aku\.com)|de-yoshi\.net|megimi\.jp)|(?:o(?:(?:ukou-onch|-zuk)i|remitakotoka)|u(?:(?:jibaka|su)ma|ruike|uryuu)|ebiichigo)\.com)|t(?:(?:u(?:r(?:u(?:beotoshi|kusa)|igane)|zi(?:giri|kaze)|(?:takaz|d)ura|bakurame|mabeni)|su(?:nokakushi|chigumo)|i(?:rirenge|yogami)|enohiragaeshi)\.com|a(?:ka(?:-kage\.com|ra-bune\.net)|(?:bigeinin|majiri|nmono)\.com|da-katsu\.com)|o(?:(?:nosama|biiro)\.jp|shi-ie\.com|umoku\.com)|y(?:a(?:noyu\.net|bo\.com)|onmage\.com)|he-ninja\.jp)|m(?:a(?:(?:(?:njushag|-jid)e|iougi)\.com|(?:eda-keiji\.com|sa-mune\.jp)|kibis(?:hi\.jp|i\.net)|meshibori\.net)|i(?:t(?:su-(?:hide|nari)\.com|arashidango\.com)|zu(?:basyou\.com|sasi\.net)|chikusa\.jp|kosi\.com)|o(?:(?:(?:(?:mijior|nog)osh|utouna)i|r(?:aimon|you))\.com|to-(?:chika|nari)\.com)|u(?:-sashi\.com|kade\.jp))|n(?:a(?:g(?:a-masa\.com|esen\.net)|m(?:idaame\.com|ekuji\.jp)|o-shige\.com|bebugyou\.com)|i(?:n(?:ja-(?:(?:mania|x)\.jp|web\.net)|pou\.jp)|gamushi\.net)|e(?:m(?:achinotsuki|iminimizu)\.com|konikoban\.org|ngu\.jp)|o(?:b(?:u-naga\.net|ody\.jp)|ppikinaranu\.com|maki\.jp)|u(?:k(?:arumi\.net|enin\.jp|imi\.com)|sutto\.jp))|y(?:u(?:ki(?:(?:shigure|hotaru|gesho)\.com|-mura\.net|mizake\.net)|(?:-(?:nagi|yake)|menogotoshi)\.com)|a(?:(?:(?:ngotonak|hansug)i|ma(?:gomori|noha)|ekumo)\.com|ki(?:(?:gote|uchi)\.com|in\.net))|o(?:(?:k(?:inihakarae|ochou)|mibitoshirazu|hamanzokuja)\.com|shi-(?:tsugu|moto)\.com))|i(?:(?:(?:m(?:awamukash|odurushik)|aigir)i|k(?:aduchi|idane)|n(?:ukubou|a-ka))\.com|(?:i(?:yudan|na)a|chiya-boshi|s-mine)\.net|za(?:kamakura\.com|-yoi\.net)|e-yasu\.com|fdef\.jp)|g(?:o(?:(?:(?:raiko|uket)u|emonburo|syuugi|kenin)\.com|zaru\.jp)|a(?:ryoutensei\.com|magaeru\.jp|nriki\.net)|e(?:jigeji|nin)\.jp|ionsyouja\.com)|c(?:h(?:o(?:(?:itoippuku|umusubi|-chin)\.com|ttu\.net)|i(?:(?:tosedori|kouyore)\.com|manako\.net)|a(?:gasi|kin)\.com)|(?:yber-ninja|lient)\.jp)|a(?:m(?:e(?:-zaiku|arare)\.com|igasa\.jp)|(?:ri-jigoku|kazunoma)\.com|t(?:-ninja\.jp|ukan\.com)|(?:ikotoba|shigaru)\.jp)|b(?:u(?:(?:tanishinju|zama)\.com|fsiz\.jp)|ak(?:e-neko\.net|ufu\.org)|(?:okunenjin|youbu)\.com|iroudo\.jp)|d(?:o(?:u(?:setsu\.com|meki\.com)|(?:kkoish|nburak)o\.com|tera\.net)|a(?:rumaotosi\.com|yuh\.net))|u(?:(?:n(?:deinosa|tokosho)|s(?:himai|unu)ri|(?:unya|iji)n)\.com|ji-masa\.com|kime\.org)|j(?:o(?:u(?:gennotuki\.com|nin\.jp)|rougumo\.com)|(?:youkamachi|akou)\.com)|wa(?:r(?:ab(?:imoch|uk)i\.net|emowaremoto\.com)|-sanbon\.com|katono\.jp)|e(?:(?:(?:do-jida|bo-sh)i|nokorogusa)\.com|hoh\.net)|z(?:a(?:shiki|tunen)\.com|ouri\.jp)|fu(?:ma-kotaro\.com|tene\.net)|ra(?:n-maru\.net|kugan\.com)|xxxxxxxx\.jp)\//

もちろんこの正規表現を手動で書くのは無理なので、PerlのRegexp::Assembleを利用する。
上では、メンテナンス中|忍者ツールズからドメインを抜き出し整形して配列にし、

use Regexp::Assemble;

my $ra = Regexp::Assemble->new;
# my @domains = qw(ドメインのリスト)
$ra->add(map quotemeta, @domains);
print $ra->re;

のようなスクリプトが出力した正規表現を、JavaScript向けに修正した。便利。