【わしづかみたん】また俺たちの出番だが 3【ハァハァ】
「わしづかみくん」サーバと、bbs.cgi に組み込むクライアントルーチンはもう完成してるのでしょうか?
http://pc.2ch.net/wasi.txt を読む限りでは、さくっと作れそうですが……
# Part1、Part2 は既に dat 落ちしているので未読
>>869-870 バイナリにしないと重そう
しても重そうだが(藁
高い確率でパケット管理飛ぶ
パケットで管理するんだべ
パケット飛んでくるたびにリクエスト出してちゃ負荷高いべ
荒らしからすりゃからパケットバカバカ投げれば入り口が飛ぶんだから楽になる罠
という夜勤の妄想の世界のお話でした。
-----------終了-------------
937 :
ひろゆき ◆3SHRUNYAXA :03/03/04 21:06
ひろゆきキタ━━━━━━(゚∀゚)━━━━━━ !!
ひぃ ろぉ ゆぅ きぃ?
940 :
名無しさん@お腹いっぱい。:03/03/05 13:28
,.-―っ / ̄ ̄ ̄ ̄ ̄
人./ノ_ら~ | ・・・と見せかけて
从 iヽ_)// ∠ 再 開!!!
.(:():)ノ::// \____
、_):::::://( (ひ
)::::/∠Λ てノし)' ,.-―-、 _
______人/ :/´А`):: ( _ノ _ノ^ヾ_) < へヽ\
|__|__|__( (/:∴:::( .n,.-っ⌒ ( ノlll゚∀゚) .(゚Д゚llソ |
|_|__|_人):/:・:::∵ヽ | )r' ー'/⌒ ̄ て_)~ ̄__ イ
||__| (::()ノ∴:・/|::| ./:/ /  ̄/__ヽ__/
|_|_| 从.从从:/ |__|::レ:/ ___/ヽ、_/
|__|| 从人人从 ..|__L_/ .( ヽ ::|
|_|_|///ヽヾ\ .|_|_ /⌒二L_ |
──────── ー' >ー--'
>>937 どうも。
サーバは出来ました。
あとはクライアントの方。
クライアント側も出来ました。
作ったのはPerl スクリプト三つです。
(1) washi_server.pl
このスクリプトは帯域や CPU リソースに余裕のあるサーバに置いて、cron などで
定期的に実行してください。
実行すると例の proxy サーバのアドレスが掲載されているページを読みにいき、
IP アドレスのリストを作ります(denylist.txt)。
denylist.txt の形式は
http://pc.2ch.net/wasi.txt から最初の "denylist"
というマジック文字列を抜いたものです。
ちなみに 20 分以上かかります(Web ページ取得 5 分 + DNS lookup 15 分以上)。
(2) washi_client.pl
このスクリプトは、それぞれの 2ch サーバで定期的に実行してください。
実行すると washi_server.pl が作成した denylist.txt を取得して、ローカルに
保存します。同時に denylist.db というバイナリファイルを生成します。
denylist.db は denylist.txt に登録された IP アドレスをソートして重複を
取り除き、それぞれを 4 バイトのバイナリに変換して連結したものです。
ソートするのは、次の check_proxy() で二分探索法を用いるためです。
(3) bbs.cgi に登録するサブルーチン check_proxy()
このサブルーチンは bbs.cgi に組み込んでください。
ホスト名(または IP アドレス)を引数にとり、denylist.db に登録されている
ホストならば 1、そうでなければ 0 を返します。
こんな感じで使う:
print "proxy ダメ\n" if check_proxy('proxy.2ch.net');
use Socket; ←無いならこれを追加してください。inet_aton() を使うために必要
sub check_proxy($) {
my $hostname = $_[0];
my $ipaddr = inet_aton($hostname);
open(IN, '<denylist.db') || return 0;
binmode(IN);
my $delimter = $/;
$/ = undef;
my $buf = <IN>;
$/ = $delimter;
close(IN);
my ($low, $high, $middle, $element) = (0, (length($buf) >> 2) - 1);
while ($low <= $high) {
$middle = ($low + $high) >> 1;
$element = substr($buf, $middle << 2, 4);
if ($ipaddr lt $element) {
$high = $middle - 1;
} elsif ($ipaddr gt $element) {
$low = $middle + 1;
} else {
return 1;
}
}
return 0;
}
=== washi_client.pl ここから===
#!/usr/bin/perl -w
use strict;
use IO::Socket::INET;
# ファイルを取得
sub http_get($;$)
{
my ($uri, $cookie) = @_;
unless ($uri =~ m{^
http://([^/:\@]+)(?::(\d+))?(/\S*)?$}o) {
return undef;
}
my $host = $1;
my $port = $2 || 80;
my $path = $3;
$path = '/' unless defined($path);
my $sock = new IO::Socket::INET(PeerAddr => $host, PeerPort => $port, Proto => 'tcp', Timeout => 30);
return undef unless defined($sock);
$sock->autoflush;
my $authority = $host;
$authority .= ":$port" if $port != 80;
print $sock "GET $path HTTP/1.0\r\n",
"Host: $authority\r\n",
"User-Agent: Mozilla/4.0 (compatible; washi_client.pl)\r\n",
defined($cookie) ? "Cookie: $cookie\r\n\r\n" : "\r\n";
my ($buf, $n) = '';
1 while ($n = sysread($sock, $buf, 1024 * 8, length($buf)));
if (defined($n) && $buf =~ m{^HTTP/\d+\.\d+\s+(\d+)}o && $1 =~ /^2/o) {
return $buf;
}
return undef;
}
sub uniq(@)
{
my %count;
return grep(!$count{$_}++, @_);
}
# 適当に変更
my $url = '
http://pc.2ch.net/denylist.txt';
my $buf = http_get($url);
die("cannot get $url\n") unless defined($buf);
$buf =~ s/.+?\r?\n\r?\n//s;
# 2ch 全体で制限が必要なら
#my $url2 = '
http://pc.2ch.net/deny_global.txt';
#my $buf2 = http_get($url2);
#die("cannot get $url\n") unless defined($buf2);
#$buf2 =~ s/.+?\r?\n\r?\n//s;
#$buf .= $buf2;
# サーバごとに制限が必要なら
#if (open(IN, '<deny_local.txt')) {
# while (<IN>) {
# $buf .= $_;
# }
# close(IN);
#}
my @addrlist = map(inet_aton($_), $buf =~ /\s*([\d\.]+)\s*/go);
@addrlist = uniq(@addrlist);
@addrlist = sort(@addrlist);
# 適当に置くところを変えてください
open(OUT, '>denylist.db') || die("cannot open denylist.db\n");
binmode(OUT);
print OUT @addrlist;
close(OUT);
# 同じく
open(OUT, '>denylist.txt') || die("cannot open denylist.txt\n");
print OUT join("\n", map(inet_ntoa($_), @addrlist)), "\n";
close(OUT);
=== washi_client.pl ここまで===
インデントが全角空白になっているので注意
washi_server.pl はどうしましょうか。
ここに載せると script kiddie に使われそうなのでアレです。
[email protected] に送ればいいのかな?
記念マキコ
次スレは WebProg 板でやろう
Web プログラミングの要素はほとんど無いので、ここでいいです。
自分で賛成とか(ry
必死w
嫌がられながら続けるのもなんかなー、とか
それが漢の生きる道
感じわるー
>>952 SocketでWEB上から串を探し、
串を使ってのWEBからのアクセスを制限するというのは、
Webプログラミングそのものです。
ていうか、root権限も無いのに俺らに何かできる事あるの?
Perl のコードが出てきたけど、添削できるのはこの板の住人じゃないと思うんだが。
>>955 は?明確かつ正当な理由もないのにここでやると言い張ってるアンタの方が
必死に見えるよ(笑)。
>>959 >ていうか、root権限も無いのに俺らに何かできる事あるの?
既知の proxy 経由での書き込みを防ぐことくらい、root 権限が無くても出来るでしょう。
> Perl のコードが出てきたけど、添削できるのはこの板の住人じゃないと思うんだが。
どうなんでしょうか。できる人が多いと思ったからこそ貼り付けたのですけどねー
私は Perl スクリプトをあまり書いたことがないので、技術レベルの高い人から見れば
いろいろ突っ込みどころがあると思います。処理効率、メモリ使用量などの点で。
2chの動作報告はここで その3
http://tmhkym.net/maka/bbs/test/read.cgi?bbs=maka&key=044895830&ls=50 167 名前:名無しマカー。 メェル:sage 投稿日:2003/03/08(土) 01:31 ID:???
http://qb.2ch.net/test/read.cgi/accuse/1046163577/890 2chの動作報告はここで。−36−
890 :心得をよく読みましょう :03/03/08 00:17 ID:jhIkGBh1
現在.htaccessで弾いているIPのリスト。徐々に全板に広がっていくので要注意。
218.225.0.0/17 219.164.0.0/15 165.76.216. 211.120.93. 211.14.244.
220.99.134.164 211.132.22.168 203.136.15.132 211.131.195.99
133.11.12.32 219.103.115.3 210.231.40.46 210.172.221.124
220.8.32.134 211.132.202.17 133.5.6.12 12.36.111.242
61.21.57.100 61.114.196.50 61.115.195. 61.117.6.83
61.118.62.50 61.207.116.57 61.197.107.191 61.120.154.133
61.199.33.19 61.202.202.6 61.213.120.250 61.248.
64.140.49.66 64.140.49.67 66.77.73.68
202.234.172.0/25 209.237.238.
210.147.223.120 210.199.215.14 210.131.75.165 210.238.2.168
210.234.67.242 211.10.85.162 211.13.222.125
218.44.76.90 218.119.152.81 218.221.251.222 218.224.153.53
218.225.147.186 218.229.195.63 218.221.37.250
219.57.40.101 219.162.223.231 219.167.136.236
63.89.180.0/23 66.236.0.0/14
206.129.0.0/23 209.142.0.0/18 209.210.176.0/20 211.17.150.160/29
_________________________________________________________________
ということらしいので、該当する人はご注意を。 つか、泣くだけ?
ま だ や っ て た ん で す か ?
暇 人 で す ね 、 あ な た 達 。
出来る人がやるっていう、いつものことじゃん。
やらなくてもいいのに。
「自分たちでできねーなら外注しろよ」と思っちゃったり。
>>933 気にせずにガンガレ。漏れはおなえさんを支持するぞ。
応援はするが、他の板でやってくれ。なんでそんなにUnix板に固執するの?
感謝されたいとか、注目されたいからとかじゃないの?
感謝厨が湧く板を増やすのはよくないということと思われ
>>958 禿同
958 :名無しさん@お腹いっぱい。 :03/03/08 15:49
>>952 SocketでWEB上から串を探し、
串を使ってのWEBからのアクセスを制限するというのは、
Webプログラミングそのものです。
>>971 じゃーここでもやるなよ(´Д`)。以前どれだけ荒れたかぐらい知ってるだろ。
感謝厨が湧く板を減らしたいなら批判要望ででもやれっつーの。
>>974 激しく同意。
一部のかまって欲しいヒキーUnixerのせいで
えらい迷惑だ。
えろい迷惑だ。
さて、どこからどこまでが自作自演か。
なぜ1-997なのかと小一時間問い詰めない
981 :
名無しさん@お腹いっぱい。:03/03/13 09:10
埋め立て会誌
おい、おまいら自作自演はやめなさい。
(^^)
また山崎出現か。
UNIXの人たちって、仲悪なのかぁ
内輪もめ?
それとも、ゆきひろが悪いのかぁ
>>986 つーことは ウニクスの人たちでも打つ手がないと・・・・言ってみるテスト
age2chの勝ちつーことデツね
>>933 まぁだぁ〜?( ´∀`)
WebProgrammingについて熱く語ってくれよ(ワラ
989 :
名無しさん@お腹いっぱい。:03/03/14 13:20
□□□■■■■■■□□□□□■■■■■■□□□□□□□■■■□□□□□
□□■□□□□□□■□□□■□□□□□■□□□□□□■□□□■□□□□
□□□□□□□□■■□□□■□□□□□■□□□□□■□□□□□■□□□
□□□■■■■■■■□□□■□□□□□■□□□□■□□□□□□□■□□
□□■□□□□□■■□□□□■■■■■■□□□□■■■■■■■■■□□
□□■□□□□□■■□□□□□□■□□□□□□□■□□□□□□□□□□
□□■□□□□□■■□□□□■■■■■■■□□□□■□□□□□□□□□
□□■□□□□□■■□□□■□□□□□□□■□□□□■□□□□■□□□
□□□■■■■■□■■□□■□□□□□□□■□□□□□■■■■□□□□
□□□□□□□□□□∩□□□■■■■■■■□□□□□□□□□□□□□□
| ゝノ
__|_______|_ ■■■■■■■■
|iiiiiiiiiiiiiiiii| ■■■■■■■■■ナニヤッテンダヨ!バカモノガァ!
|iiiiiiiiiiiiiiiii| ■■■■√ === │
|iiiiiiiiiiiiiiiii|■■■■√ ~ ミ ノノノ 彡 |
|iiiiiiiiiiiiiiii|■■■√ ∀ ∀ \
|iiiiiiiiiiiiiiii|■■■ ∵ (● ●) ∴│ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|iiiiiiiiiiiiiiii|■■■ 丿■■■( │< 常にageとけって
|iiiiiiiiiiiiiiii|■■■ ■ д ■ | | 言ったじゃないかぁ!
|iiiiiiiiiiiiiiii|■■■■ ■■ ■■ ■ \_________
|iiiiiiiiiiiiiiiiii■■■■■■■■■■■■__
\iiiiiiiiiiiiiii■■■■■■■■■■■■iiヽ
\iiiiiiiiiiiii■■■■■■■■■■■iiiiiii|
|iiiiiiiiiiiiiiiii■■■■■■■■■■iiiiiiiii|
まぁ、がんばれ
次擦れUNIX板じゃなかったらぶっ死ろすのでそのつもりで
2chの存続をかけた戦いなんだということがわかってないやつ
がいるな
スレタイが厨房を誘い込むように出来ちゃってるのがいかんのよ。
【対串防衛】わしづかみたんハアハア【cgi】
くらいなら、板住人からも外部からも妨害されずにやれるだろうに。
スクリプト以前にソーシャルが出来てない。
2ch がどうなろうと別にどうでもいいし。
>>991 >>975 でも読んで頭冷やしたまえ(´ー`)y-~~
2ch のために何かしようという気持ちは無いでもないが、
ス レ 違 い な ん だ よ 、 ボ ケ !
995は、板違いと言いたかったのか??
続きはmuttを使おうスレでやってくれ。
良い隠れ蓑だ
998
999
1000
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。