peko鯖の稼動によりボトルネックの一つである事がより明らかになった
bbs.cgi作り直しプロジェクトです。
【開発環境の工事現場】
また挑戦。@2ch掲示板 http://dso.2ch.net/myanmar/
また挑戦2。@2ch掲示板 http://dso.2ch.net/yangon/
関連スレなどは >>2-5 くらい
探検
bbs.cgi再開発プロジェクト6
■ このスレッドは過去ログ倉庫に格納されています
2005/04/10(日) 16:15:47ID:a6rtBqIi0
パピコ記念のテスト
Mozilla/3.0(DDIPOCKET;JRC/AH-J3001V,AH-J3002V/1.0/0100/c50)CNF/2.0
Mozilla/3.0(DDIPOCKET;JRC/AH-J3001V,AH-J3002V/1.0/0100/c50)CNF/2.0
そりゃUA違うしな
Monazilla/1.00 kage/0.99.1.1153 (1000)
Monazilla/1.00 kage/0.99.1.1153 (1000)
2005/06/24(金) 00:17:21ID:Bzb8/f1PP
664む P221119009159.ppp.prin.ne.jp
2005/06/24(金) 00:17:59ID:g0fG5wWDo おぉ、そですか。
であれば、味ぽんを切ってしまえば、この特殊処理しなくていいのね。
でも奥様が味ぽんのうちは、絶対そんなことできないわけで。
であれば、味ぽんを切ってしまえば、この特殊処理しなくていいのね。
でも奥様が味ぽんのうちは、絶対そんなことできないわけで。
2005/06/24(金) 00:21:29ID:izGLkW05o
666root▲ ★
NGNG きたくで。
>>659
今は prin.ne.jp が規制されれば、出自に関係なく巻き添えですね。
それ(規制の方法論)も含めてよりうまくできる道はあるのか、
あるいは実は携帯荒らしみたいに京ぽん荒らしがいたりするのかとか、
そういうことを、知っておきたいわけで。
>>659
今は prin.ne.jp が規制されれば、出自に関係なく巻き添えですね。
それ(規制の方法論)も含めてよりうまくできる道はあるのか、
あるいは実は携帯荒らしみたいに京ぽん荒らしがいたりするのかとか、
そういうことを、知っておきたいわけで。
2005/06/24(金) 00:27:09ID:cetU9eEYo
テスト
2005/06/24(金) 00:29:36ID:e5bWae1/0
670root▲ ★
NGNG2005/06/24(金) 00:35:01ID:yqNIRM/n0
テストはテストスレで
名前欄にはなるべくtasukeruyoで
名前欄にはなるべくtasukeruyoで
673root▲ ★
NGNG というわけで、あるIPアドレスがあるCIDRブロックに入っているかを、
Perlでうまく調べる方法って、どうすればいいのかしら。
具体的にはあるIPアドレスが、61.204.3.0/25 に入っているかいないかを
さくっとコール一発で、調べたいわけです。
Perlでうまく調べる方法って、どうすればいいのかしら。
具体的にはあるIPアドレスが、61.204.3.0/25 に入っているかいないかを
さくっとコール一発で、調べたいわけです。
http://ex10.2ch.net/test/read.cgi/morningcoffee/1119539572/47
>47 :ZC******.ppp.dion.ne.jp :2005/06/24(金) 00:33:59 o
>ふしあなしてみた
これはなにですか
>47 :ZC******.ppp.dion.ne.jp :2005/06/24(金) 00:33:59 o
>ふしあなしてみた
これはなにですか
2005/06/24(金) 00:37:27ID:yqNIRM/n0
prinとdionは同じ施設使ってるですよ
ソースはwhois
ソースはwhois
続報
58 47 2005/06/24(金) 00:36:43 0
繋ぎ直したらでなくなったみたい
だそうです
58 47 2005/06/24(金) 00:36:43 0
繋ぎ直したらでなくなったみたい
だそうです
678root▲ ★
NGNG ははぁ、虫ですね。
つまり、もともと虫がいたと。
(判別部分のアルゴリズムは、前のバージョンと変えていません)
221.119.26.185 が、221.119.2 にマッチしちゃってるわけね。
なんだかなぁ。
つまり、もともと虫がいたと。
(判別部分のアルゴリズムは、前のバージョンと変えていません)
221.119.26.185 が、221.119.2 にマッチしちゃってるわけね。
なんだかなぁ。
2005/06/24(金) 00:40:30ID:0G1cfbjq0
質雑のFAQ修正はこんな感じですか。
Q.IDの後ろに付いてる0とかOとかPとかoってなに?
A.書込み手段を区別する目印です。
PC等が 0 (ゼロ) 、携帯が O (大文字のオー)、 P は公式p2( http://p2.2ch.net/ )
それ以外(Air H"等)が o (小文字のオー)からです。
荒らし対策の一環として、一部の板に便宜上導入されています。
Q.IDの後ろに付いてる0とかOとかPとかoってなに?
A.書込み手段を区別する目印です。
PC等が 0 (ゼロ) 、携帯が O (大文字のオー)、 P は公式p2( http://p2.2ch.net/ )
それ以外(Air H"等)が o (小文字のオー)からです。
荒らし対策の一環として、一部の板に便宜上導入されています。
2005/06/24(金) 00:41:40ID:Ud6A2wHe0
携帯もキャリア別に末尾変えるべきかと
681root▲ ★
NGNG >>679
携帯が O (大文字のオー)、 公式p2( http://p2.2ch.net/ )が P、
AIR-EDGE PHONEが o (小文字のオー)、
それ以外が 0 (ゼロ)です。
が、正しいです。
携帯が O (大文字のオー)、 公式p2( http://p2.2ch.net/ )が P、
AIR-EDGE PHONEが o (小文字のオー)、
それ以外が 0 (ゼロ)です。
が、正しいです。
とりあえず、IR-EDGEPHONEセンターとPRINは
課金条件とかが違うから名前を変えているけれど
中身は同じなんじゃないかと。だからIPも同じになると。
憶測なんだけど。
でもAPの電話番号は違うんだよね
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/312.1 (KHTML, like Gecko) Safari/312
課金条件とかが違うから名前を変えているけれど
中身は同じなんじゃないかと。だからIPも同じになると。
憶測なんだけど。
でもAPの電話番号は違うんだよね
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/312.1 (KHTML, like Gecko) Safari/312
2005/06/24(金) 00:43:25ID:skdIbacY0
684root▲ ★
NGNG >>680
それは一瞬考えたんですが、今の目的(荒らしの出自判定)からは、
その必要ないと思っているです。
なんでかというと「xxのキャリアからの荒らしだ」ということは規制方法論的には全く
区別していなくて、いずれの携帯キャリアも全く同じ方法で、規制しているからですね。
もしが「auだけ特殊な規制処理」とか「DoCoMoだけ特殊な規制処理」とかしているんであれば、
区別する意味はあるわけですけど。
それは一瞬考えたんですが、今の目的(荒らしの出自判定)からは、
その必要ないと思っているです。
なんでかというと「xxのキャリアからの荒らしだ」ということは規制方法論的には全く
区別していなくて、いずれの携帯キャリアも全く同じ方法で、規制しているからですね。
もしが「auだけ特殊な規制処理」とか「DoCoMoだけ特殊な規制処理」とかしているんであれば、
区別する意味はあるわけですけど。
685root▲ ★
NGNG で、今入っている o 判定ルーチンにはバグがあるです。
(もともとあったのが、今回判明した)。
ということで今出る o は、必ずしも正確なものではないです。
めしくったら、ちと直してみるか。
(もともとあったのが、今回判明した)。
ということで今出る o は、必ずしも正確なものではないです。
めしくったら、ちと直してみるか。
2005/06/24(金) 00:47:21ID:yPAq0Ytf0
うむ。
末尾「o」はいい感じですね。
それよりも、root氏って京ぽなー??
末尾「o」はいい感じですね。
それよりも、root氏って京ぽなー??
2005/06/24(金) 00:51:39ID:0G1cfbjq0
ではこんな感じで。(種別の並びをあわせてみました)
Q.IDの後ろに付いてるOとかPとかoとか0ってなに?
A.書込み手段を区別する目印です。
携帯が O (大文字のオー)、 公式p2( http://p2.2ch.net/ )が P、
AIR-EDGE PHONEが o (小文字のオー)、
それ以外が 0 (ゼロ)です。
荒らし対策の一環として、一部の板に便宜上導入されています。
Q.IDの後ろに付いてるOとかPとかoとか0ってなに?
A.書込み手段を区別する目印です。
携帯が O (大文字のオー)、 公式p2( http://p2.2ch.net/ )が P、
AIR-EDGE PHONEが o (小文字のオー)、
それ以外が 0 (ゼロ)です。
荒らし対策の一環として、一部の板に便宜上導入されています。
2005/06/24(金) 00:55:08ID:am8Tfv680
Oと0の分け方は大雑把なのに、AIR-EDGE PHONEセンター経由だけ識別されるのは、ちょっといやーかもです。
0→Oへ分類変えされるならいいけど。
AIR-EDGE PHONEセンターからの荒しって多いんですか?
0→Oへ分類変えされるならいいけど。
AIR-EDGE PHONEセンターからの荒しって多いんですか?
692root▲ ★
NGNG >>683
http://search.cpan.org/dist/Net-CIDR-Lite/
こっちのほうが、軽くて速いらしいです。
とりあえず、試してみるか。
今の o 表示は、これからとりあえずいったんオフにするです。
http://search.cpan.org/dist/Net-CIDR-Lite/
こっちのほうが、軽くて速いらしいです。
とりあえず、試してみるか。
今の o 表示は、これからとりあえずいったんオフにするです。
2005/06/24(金) 01:33:13ID:am8Tfv680
2005/06/24(金) 01:34:26ID:0G1cfbjq0
おっ、質雑のほうへ転載していただいた方乙です。
2005/06/24(金) 01:34:56ID:skdIbacY0
696root▲ ★
NGNG >>695
どもです。
軽いといってもちょっとコストのかかりそうな処理なので、
SpeedyCGIの特性を生かして、$cidr->add() は出航時の1回だけにしました。
こうしておけば、重い初期化と登録は1回だけで済むはずかなと。
こんなかんじで。$FOX は出航時に初期化して使う一連のグローバル変数群。
use Net::CIDR::Lite;
$FOX->{AIREDGECIDR} = Net::CIDR::Lite->new;
# IPアドレスブロック一覧(CIDR形式)
# アドレスレンジが追加された場合、ここに加えていく
# http://www.willcom-inc.com/p_s/products/airh_phone/ip.html
my @airedgecidr = (
"61.198.142.0/24",
"61.198.249.0/24", "61.198.250.0/24",
"61.198.253.0/24", "61.198.254.0/24", "61.198.255.0/24",
"61.204.0.0/24",
"61.204.3.0/25",
"61.204.4.0/24",
"61.204.6.0/25",
"210.168.246.0/24", "210.168.247.0/24",
"211.18.235.0/24",
"211.18.238.0/24", "211.18.239.0/24",
"219.108.0.0/24", "219.108.1.0/24", "219.108.2.0/24", "219.108.3.0/24",
"219.108.4.0/24", "219.108.5.0/24", "219.108.6.0/24", "219.108.7.0/24",
"221.119.0.0/24", "221.119.1.0/24", "221.119.2.0/24", "221.119.3.0/24",
"221.119.4.0/24", "221.119.5.0/24", "221.119.6.0/24", "221.119.7.0/24",
"221.119.8.0/24", "221.119.9.0/24" );
# CIDRリストをあらかじめ登録しておく
# こうしておくことで、重い初期化はbbs.cgi出航時の1回で済む
for (my $i = 0; $i < @airedgecidr; $i++)
{
$FOX->{AIREDGECIDR}->add($airedgecidr[$i]);
}
どもです。
軽いといってもちょっとコストのかかりそうな処理なので、
SpeedyCGIの特性を生かして、$cidr->add() は出航時の1回だけにしました。
こうしておけば、重い初期化と登録は1回だけで済むはずかなと。
こんなかんじで。$FOX は出航時に初期化して使う一連のグローバル変数群。
use Net::CIDR::Lite;
$FOX->{AIREDGECIDR} = Net::CIDR::Lite->new;
# IPアドレスブロック一覧(CIDR形式)
# アドレスレンジが追加された場合、ここに加えていく
# http://www.willcom-inc.com/p_s/products/airh_phone/ip.html
my @airedgecidr = (
"61.198.142.0/24",
"61.198.249.0/24", "61.198.250.0/24",
"61.198.253.0/24", "61.198.254.0/24", "61.198.255.0/24",
"61.204.0.0/24",
"61.204.3.0/25",
"61.204.4.0/24",
"61.204.6.0/25",
"210.168.246.0/24", "210.168.247.0/24",
"211.18.235.0/24",
"211.18.238.0/24", "211.18.239.0/24",
"219.108.0.0/24", "219.108.1.0/24", "219.108.2.0/24", "219.108.3.0/24",
"219.108.4.0/24", "219.108.5.0/24", "219.108.6.0/24", "219.108.7.0/24",
"221.119.0.0/24", "221.119.1.0/24", "221.119.2.0/24", "221.119.3.0/24",
"221.119.4.0/24", "221.119.5.0/24", "221.119.6.0/24", "221.119.7.0/24",
"221.119.8.0/24", "221.119.9.0/24" );
# CIDRリストをあらかじめ登録しておく
# こうしておくことで、重い初期化はbbs.cgi出航時の1回で済む
for (my $i = 0; $i < @airedgecidr; $i++)
{
$FOX->{AIREDGECIDR}->add($airedgecidr[$i]);
}
697root▲ ★
NGNG で、チェック用サブルーチンはこんなふう。
#############################################################################
# AIR-EDGE PHONEセンターのIPアドレスかどうかチェックする
#############################################################################
sub mumumuIsIP4AirEdgePhone
{
my ($raddr) = @_;
# CIDRリストに該当があるかどうかチェックする
$FOX->{AIREDGECIDR}->find($raddr);
}
#############################################################################
# AIR-EDGE PHONEセンターのIPアドレスかどうかチェックする
#############################################################################
sub mumumuIsIP4AirEdgePhone
{
my ($raddr) = @_;
# CIDRリストに該当があるかどうかチェックする
$FOX->{AIREDGECIDR}->find($raddr);
}
698root▲ ★
NGNG こうだった。
#############################################################################
# AIR-EDGE PHONEセンターのIPアドレスかどうかチェックする
#############################################################################
sub mumumuIsIP4AirEdgePhone
{
my ($raddr) = @_;
# CIDRリストに該当があるかどうかチェックする
return $FOX->{AIREDGECIDR}->find($raddr);
}
#############################################################################
# AIR-EDGE PHONEセンターのIPアドレスかどうかチェックする
#############################################################################
sub mumumuIsIP4AirEdgePhone
{
my ($raddr) = @_;
# CIDRリストに該当があるかどうかチェックする
return $FOX->{AIREDGECIDR}->find($raddr);
}
699root▲ ★
NGNG2005/06/24(金) 08:21:00ID:M5iaI72S0
>>696
NetCIDRは、配列の参照受け取ったりはしないの?
まあ、数十回のコピーならさしてコストかかんないだろうけど。
# CIDRリストをあらかじめ登録しておく
# こうしておくことで、重い初期化はbbs.cgi出航時の1回で済む
for (my $i = 0; $i < @airedgecidr; $i++)
{
$FOX->{AIREDGECIDR}->add($airedgecidr[$i]);
}
↓の方がPerl的かも。処理速度は殆ど変わらんと思うけど。
foreach my $cidr (@airedgecidr){
$FOX->{AIREDGECIDR}->add($cidr);
}
>>697-698
Perlの世界では暗黙に最後の評価値がretrurn値になるので、
どっちでもOKですよ。前者の記法を好む人も多い。
こちらは完全に好みの問題だけど。
しかしこれ関数化する意味あるの?@FOXが呼び出し元のスコープにないとか?
NetCIDRは、配列の参照受け取ったりはしないの?
まあ、数十回のコピーならさしてコストかかんないだろうけど。
# CIDRリストをあらかじめ登録しておく
# こうしておくことで、重い初期化はbbs.cgi出航時の1回で済む
for (my $i = 0; $i < @airedgecidr; $i++)
{
$FOX->{AIREDGECIDR}->add($airedgecidr[$i]);
}
↓の方がPerl的かも。処理速度は殆ど変わらんと思うけど。
foreach my $cidr (@airedgecidr){
$FOX->{AIREDGECIDR}->add($cidr);
}
>>697-698
Perlの世界では暗黙に最後の評価値がretrurn値になるので、
どっちでもOKですよ。前者の記法を好む人も多い。
こちらは完全に好みの問題だけど。
しかしこれ関数化する意味あるの?@FOXが呼び出し元のスコープにないとか?
2005/06/24(金) 08:27:05ID:skdIbacY0
2005/06/24(金) 08:31:08ID:skdIbacY0
あらかぶりましたわ
703root▲ ★
NGNG >>700
下の3行のほうがよさげですね。それにしてみるです。
(そのへんの作法にくわしくなかったりします)
で、SpeedyCGI 化している今の bbs.cgi では、
出航時に1回しか設定しないところ(SETTING.TXT / 広告チェック用リスト / ローカルルール等)は、
まとめて一発関数呼んで(initFOX)、そこでやっているです。
で、上記は、initFOX内に追加したと。
下の3行のほうがよさげですね。それにしてみるです。
(そのへんの作法にくわしくなかったりします)
で、SpeedyCGI 化している今の bbs.cgi では、
出航時に1回しか設定しないところ(SETTING.TXT / 広告チェック用リスト / ローカルルール等)は、
まとめて一発関数呼んで(initFOX)、そこでやっているです。
で、上記は、initFOX内に追加したと。
704ヽ( ・∀・)ノ ≡●ウンコー ◆worRE2unko
NGNG >>631
時間によってかなり人数違うの
時間によってかなり人数違うの
705FOX ★
2005/06/24(金) 13:59:27ID:???0 そして、あとから読む人がまた悩むのであった、、、
706讃岐フォアンフォアン▲ ◆MylTDX..QI
NGNG エェェ(´Д`)ェェエ
707root▲ ★
NGNG >>705
できるだけ「おじさんのインデント」とか「おじさんの書き方」に合わせるようには、
しているわけです。サブルーチンやら変数の使い方やらも。
…しかし、難しい問題ですね。
心が通じ合わないと、だめなのかしら。
できるだけ「おじさんのインデント」とか「おじさんの書き方」に合わせるようには、
しているわけです。サブルーチンやら変数の使い方やらも。
…しかし、難しい問題ですね。
心が通じ合わないと、だめなのかしら。
2005/06/24(金) 14:36:48ID:M5iaI72S0
>>700
自己レス。
> NetCIDRは、配列の参照受け取ったりはしないの?
http://search.cpan.org/~dougw/Net-CIDR-Lite-0.17/Lite.pm
しないっぽい。
$FOX->{AIREDGECIDR} = Net::CIDR::Lite->new(@airedgecidr);
ってのはできるらしいが、全部add_any()に投げられちゃうらしいので
プログラマ的にはちょっと気持ち悪いかな。
>>703
んーとよく分からないんだけど、mumumuIsIP4AirEdgePhone()の呼び出し元からは
@FOXが参照できないってこと?
自己レス。
> NetCIDRは、配列の参照受け取ったりはしないの?
http://search.cpan.org/~dougw/Net-CIDR-Lite-0.17/Lite.pm
しないっぽい。
$FOX->{AIREDGECIDR} = Net::CIDR::Lite->new(@airedgecidr);
ってのはできるらしいが、全部add_any()に投げられちゃうらしいので
プログラマ的にはちょっと気持ち悪いかな。
>>703
んーとよく分からないんだけど、mumumuIsIP4AirEdgePhone()の呼び出し元からは
@FOXが参照できないってこと?
709FOX ★
2005/06/24(金) 14:38:33ID:???0 わたしにあわせる必要はまったくなく、、、
でも return は明示的にすべきでしょ
Perl の良さである「だれでもできる」を殺していると思う
でも return は明示的にすべきでしょ
Perl の良さである「だれでもできる」を殺していると思う
710root▲ ★
NGNG >>708
あぁ、そういう意味ですか。
つまり、
if(&mumumuIsIP4AirEdgePhone($raddr)) {
なんちゃら;
}
じゃなくて、
if($FOX->{AIREDGECIDR}->find($raddr)) {
なんちゃら;
}
ていいんじゃないかってゆうことですね。
確かにそうですが、どっちが作法としていいのか、っていう話なのかなと。
あぁ、そういう意味ですか。
つまり、
if(&mumumuIsIP4AirEdgePhone($raddr)) {
なんちゃら;
}
じゃなくて、
if($FOX->{AIREDGECIDR}->find($raddr)) {
なんちゃら;
}
ていいんじゃないかってゆうことですね。
確かにそうですが、どっちが作法としていいのか、っていう話なのかなと。
711root▲ ★
NGNG2005/06/24(金) 14:42:19ID:qV+vDjG60
俺も暗黙の返り値ってのはあんま好きじゃないなー
古いタイプなのかも
古いタイプなのかも
713FOX ★
2005/06/24(金) 14:42:54ID:???0 >Perlの世界では暗黙に最後の評価値がretrurn値になるので、
これをやられると、みんなが辛いということなんですが、
これをやられると、みんなが辛いということなんですが、
715root▲ ★
NGNG >>714
…と私もおもたので、今のは前者になっているです。
で、難民のほうで頼んだ例のPerlモジュール入れていただけると、qb6のを配ることができるですね。
(qb6ではqw()でローカルに読ませてテストしたので、今配ると他で動かないです)
…と私もおもたので、今のは前者になっているです。
で、難民のほうで頼んだ例のPerlモジュール入れていただけると、qb6のを配ることができるですね。
(qb6ではqw()でローカルに読ませてテストしたので、今配ると他で動かないです)
2005/06/24(金) 15:05:13ID:M5iaI72S0
>>710
そゆことです。
何やってるのか関数名で見通したい、というのなら前者って感じですかね。
全体構造が分からないんで的違いな話になる可能性大ですが、どちらにせよ
$FOX->{AIREDGECIDR}は同じファイル内でだけ呼ぶようにしたらいいんじゃ
ないかなと思うです。その結果が前者なんであれば前者がベターですね。
そゆことです。
何やってるのか関数名で見通したい、というのなら前者って感じですかね。
全体構造が分からないんで的違いな話になる可能性大ですが、どちらにせよ
$FOX->{AIREDGECIDR}は同じファイル内でだけ呼ぶようにしたらいいんじゃ
ないかなと思うです。その結果が前者なんであれば前者がベターですね。
2005/06/24(金) 19:42:05ID:j6fIYZld0
ごめんなさい
ちょこっとエジでテスト
ちょこっとエジでテスト
719サザン ★
NGNG qb6 の bbs.cgi は全サーバに配っちゃダメなんですよね?
721サザン ★
NGNG >>720
いやー、特に急ぎではないです。
質問・雑談スレ178@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1119446519/666
この辺を入れました。
いやー、特に急ぎではないです。
質問・雑談スレ178@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1119446519/666
この辺を入れました。
724root▲ ★
NGNG そう言っていただけると、信じてました。
愛があれば、年の差なんて。
愛があれば、年の差なんて。
725サザン ★
NGNG 今はギクシャクしてますけど、少しずつ仲良くなっていきます、、
えぇ、サーバとですよ。
えぇ、サーバとですよ。
2005/06/25(土) 00:34:36ID:qDyC1RFhO
セックルキター
2005/06/25(土) 00:38:02ID:gieTPTdE0
ウホッ!
2005/06/25(土) 01:44:13ID:tFnzMa950
ここが夜中に発展場と化している件。
2005/06/25(土) 04:19:06ID:uwvlpLto0
今日は別なスレに行ってるみたいね
730だんしゃくねこ
2005/06/25(土) 05:31:34ID:A51tnjWK0 │_A
│・−・) きゃー
↓ ⊂)
│・−・) きゃー
↓ ⊂)
731宿酔 ◆TWARamEjuA
NGNG えぇ、呑みすぎました。。。
2005/06/25(土) 14:13:26ID:984XqAIa0
すんげーどうでもいいけど、
foreach (@airedgecidr){
$FOX->{AIREDGECIDR}->add($_);
}
こうすると0.01マイクロ秒くらい速くなったり。。
foreach (@airedgecidr){
$FOX->{AIREDGECIDR}->add($_);
}
こうすると0.01マイクロ秒くらい速くなったり。。
735外野ァァン
2005/06/27(月) 11:56:40ID:ADqKwFtG0 AirH"判別、復活?
2005/06/28(火) 16:50:03ID:LQgu/qx+0
0 O o P がおっぱいに見えたから、
題して「おっぱい作戦」だな
題して「おっぱい作戦」だな
738▲ ◆cZfSunOs.U
2005/06/30(木) 23:46:01ID:rETl+gr10 実装済:
subject.txt, subback.html, dat/*.dat 更新
あぼーん
dat/*.dat から subject.txt, subback.html 再生成
未実装:
index.html, html/*.html 更新
他板へのスレ移動 etc...
とりあえず↑ってところですが http://sunos.saita.ma/bbsd.c
全部実装すると雪だるま対応仕様になりますが,とりあえず今の段階でも
subject.txt 更新等の重い処理を bbs.cgi から抜き出して軽量化にはなると思います.
使用法: bbsd [-cfh] [-b bindaddr] [-d docroot] [-i subjects_interval] [-I setting_interval] [-n nthreads] [-p port] [-s servername]
-b bindaddr: UDP ソケットを bind するアドレスを指定 [default: 127.0.0.1]
-c: 入力のバイトシーケンスチェックを行う (環境変数 LANG/LC_CTYPE/LC_ALL に依存)
-d docroot: httpd の document root [default: /usr/local/apache2/htdocs]
-f: フォアグラウンドで実行
-h: ヘルプ表示
-i subjects_interval: subject.txt 等の更新間隔(秒) [default: 5]
-I setting_interval: SETTING.TXT のチェック間隔(秒) [default: 60]
-p port: UDP ソケットのポート番号 [default: 2222]
-s servername: httpd のサーバ名 [default: www.example.com]
-DUSE_THREADS 付きでビルドするとマルチスレッド版になり,このオプションが追加.
-n nthreads: worker スレッド数 [default: 4]
んで,例えばこんな感じで起動する,と.
su ch2qb5 -c 'LANG=ja_JP.SJIS bbsd -c -d/home/ch2qb5/htdocs -sqb5.2ch.net'
bbs.cgi からの呼び出し法は
----------------------------------------------------------------------
use Socket;
use constant BBSD_HOST => inet_aton('127.0.0.1');
use constant BBSD_PORT => 2222;
use constant BBSD_TIMEOUT => 1;
sub bbsd {
my ($rfd, $str) = ('', '');
my $sin = sockaddr_in(BBSD_PORT, BBSD_HOST);
socket(SOCK, AF_INET, SOCK_DGRAM, 0) || return "$!";
send(SOCK, join('/', @_), 0, $sin) || return "$!";
vec($rfd, fileno(SOCK), 1) = 1;
if (select($rfd, undef, undef, BBSD_TIMEOUT)) {
recv(SOCK, $str, 256, 0) || return "$!";
}
else {
$str = "書き込みを受理しましたがサーバが混雑しています.書き込みが反映されない場合もあります.";
}
return $str;
}
----------------------------------------------------------------------
subject.txt, subback.html, dat/*.dat 更新
あぼーん
dat/*.dat から subject.txt, subback.html 再生成
未実装:
index.html, html/*.html 更新
他板へのスレ移動 etc...
とりあえず↑ってところですが http://sunos.saita.ma/bbsd.c
全部実装すると雪だるま対応仕様になりますが,とりあえず今の段階でも
subject.txt 更新等の重い処理を bbs.cgi から抜き出して軽量化にはなると思います.
使用法: bbsd [-cfh] [-b bindaddr] [-d docroot] [-i subjects_interval] [-I setting_interval] [-n nthreads] [-p port] [-s servername]
-b bindaddr: UDP ソケットを bind するアドレスを指定 [default: 127.0.0.1]
-c: 入力のバイトシーケンスチェックを行う (環境変数 LANG/LC_CTYPE/LC_ALL に依存)
-d docroot: httpd の document root [default: /usr/local/apache2/htdocs]
-f: フォアグラウンドで実行
-h: ヘルプ表示
-i subjects_interval: subject.txt 等の更新間隔(秒) [default: 5]
-I setting_interval: SETTING.TXT のチェック間隔(秒) [default: 60]
-p port: UDP ソケットのポート番号 [default: 2222]
-s servername: httpd のサーバ名 [default: www.example.com]
-DUSE_THREADS 付きでビルドするとマルチスレッド版になり,このオプションが追加.
-n nthreads: worker スレッド数 [default: 4]
んで,例えばこんな感じで起動する,と.
su ch2qb5 -c 'LANG=ja_JP.SJIS bbsd -c -d/home/ch2qb5/htdocs -sqb5.2ch.net'
bbs.cgi からの呼び出し法は
----------------------------------------------------------------------
use Socket;
use constant BBSD_HOST => inet_aton('127.0.0.1');
use constant BBSD_PORT => 2222;
use constant BBSD_TIMEOUT => 1;
sub bbsd {
my ($rfd, $str) = ('', '');
my $sin = sockaddr_in(BBSD_PORT, BBSD_HOST);
socket(SOCK, AF_INET, SOCK_DGRAM, 0) || return "$!";
send(SOCK, join('/', @_), 0, $sin) || return "$!";
vec($rfd, fileno(SOCK), 1) = 1;
if (select($rfd, undef, undef, BBSD_TIMEOUT)) {
recv(SOCK, $str, 256, 0) || return "$!";
}
else {
$str = "書き込みを受理しましたがサーバが混雑しています.書き込みが反映されない場合もあります.";
}
return $str;
}
----------------------------------------------------------------------
739▲ ◆cZfSunOs.U
2005/06/30(木) 23:47:02ID:rETl+gr10 で,書き込み処理はこんな感じで.
my $errmsg = bbsd($bbs, $key, $datline);
$bbs は板の指定(operate),$key はスレッドキー(1113117347),
$datline は *.dat への出力と同じ形式の文字列.
name<>email<>date etc.<>message<>[title]
正常に処理されると $errmsg は空文字列で,エラーが発生した場合は
それを示す文字列になります.
この bbsd は subject データをオンメモリで保持するため,
他のプログラムが subject.txt 等を変更しても bbsd によって
上書きされてしまうので,あぼーんや subject 再生成等の機能も
搭載しました.
レスの通常あぼーん:
my $errmsg = bbsd($bbs, "delete:$key", $range);
レスの透明あぼーん:
my $errmsg = bbsd($bbs, "tdelete:$key", $range);
スレッドのゴミ箱逝き:
my $errmsg = bbsd($bbs, "delete:$key", '*');
スレッドのファイル自体削除:
my $errmsg = bbsd($bbs, "tdelete:$key", '*');
$range は例えば "2-19,22,24,26-29" のようなレス番指定.
subject.txt 等の再生成:
my $errmsg = bbsd($bbs, 'repair');
この処理は時間がかかりそうなら BBSD_TIMEOUT はもっと長い方がいいかも知れません.
もっとも,UDP ソケットキューがあふれてリクエストが破棄されているとかでない限り
タイムアウトになっても処理自体は行われますが.
my $errmsg = bbsd($bbs, $key, $datline);
$bbs は板の指定(operate),$key はスレッドキー(1113117347),
$datline は *.dat への出力と同じ形式の文字列.
name<>email<>date etc.<>message<>[title]
正常に処理されると $errmsg は空文字列で,エラーが発生した場合は
それを示す文字列になります.
この bbsd は subject データをオンメモリで保持するため,
他のプログラムが subject.txt 等を変更しても bbsd によって
上書きされてしまうので,あぼーんや subject 再生成等の機能も
搭載しました.
レスの通常あぼーん:
my $errmsg = bbsd($bbs, "delete:$key", $range);
レスの透明あぼーん:
my $errmsg = bbsd($bbs, "tdelete:$key", $range);
スレッドのゴミ箱逝き:
my $errmsg = bbsd($bbs, "delete:$key", '*');
スレッドのファイル自体削除:
my $errmsg = bbsd($bbs, "tdelete:$key", '*');
$range は例えば "2-19,22,24,26-29" のようなレス番指定.
subject.txt 等の再生成:
my $errmsg = bbsd($bbs, 'repair');
この処理は時間がかかりそうなら BBSD_TIMEOUT はもっと長い方がいいかも知れません.
もっとも,UDP ソケットキューがあふれてリクエストが破棄されているとかでない限り
タイムアウトになっても処理自体は行われますが.
2005/07/01(金) 14:35:23ID:UUYAgp820
2005/07/01(金) 14:43:09ID:t9ua+Um40
じっけん!じっけん!
743讃岐フォアンフォアン▲ ◆SANUKIvwUE
NGNG ワクワクテカテカ
745▲ ◆cZfSunOs.U
2005/07/02(土) 01:27:22ID:YxODQddI0 おっと >>738 close() 入れないと......
sub bbsd {
my ($rfd, $str) = ('', '');
my $sin = sockaddr_in(BBSD_PORT, BBSD_HOST);
socket(SOCK, AF_INET, SOCK_DGRAM, 0) || return "$!";
send(SOCK, join('/', @_), 0, $sin) || (close(SOCK), return "$!");
vec($rfd, fileno(SOCK), 1) = 1;
if (select($rfd, undef, undef, BBSD_TIMEOUT)) {
recv(SOCK, $str, 256, 0) || (close(SOCK), return "$!");
}
else {
$str = "書き込みを受理しましたがサーバが混雑しています.書き込みが反映されない場合もあります.";
}
close(SOCK);
return $str;
}
sub bbsd {
my ($rfd, $str) = ('', '');
my $sin = sockaddr_in(BBSD_PORT, BBSD_HOST);
socket(SOCK, AF_INET, SOCK_DGRAM, 0) || return "$!";
send(SOCK, join('/', @_), 0, $sin) || (close(SOCK), return "$!");
vec($rfd, fileno(SOCK), 1) = 1;
if (select($rfd, undef, undef, BBSD_TIMEOUT)) {
recv(SOCK, $str, 256, 0) || (close(SOCK), return "$!");
}
else {
$str = "書き込みを受理しましたがサーバが混雑しています.書き込みが反映されない場合もあります.";
}
close(SOCK);
return $str;
}
746● ◆ANGLERlqvM
NGNG ここまで来たんですね。
もう、凄いとしか。。。
もう、凄いとしか。。。
2005/07/02(土) 09:28:05ID:ZRfZC6Ox0
ああ、和菓子職人が仕上げていく様子を、横で(口を緩めて)眺めている感覚。
2005/07/02(土) 11:59:59ID:TINNy+yho
ID末尾の識別子について
WILLCOMの「端末だけ」を識別することに何の意味があるのでしょう?("ポン厨"とか言われるのですが)
味/京ポンのような接続環境は、ダイアルアップ接続なPDA/モバイルなどもそうでしょう。
そして、コピペに不自由なWILLCOM端末を使うより、PDA/モバイルなどを使う方が悪質な荒らしが可能と思います。
繋ぐたびにIDが変わるISPのくくりで識別するというなら、まだ納得できます。
要はprinならセンターと分ける必要はなくて、同じ識別をしたらということです。dionとかも。
WILLCOMの「端末だけ」を識別することに何の意味があるのでしょう?("ポン厨"とか言われるのですが)
味/京ポンのような接続環境は、ダイアルアップ接続なPDA/モバイルなどもそうでしょう。
そして、コピペに不自由なWILLCOM端末を使うより、PDA/モバイルなどを使う方が悪質な荒らしが可能と思います。
繋ぐたびにIDが変わるISPのくくりで識別するというなら、まだ納得できます。
要はprinならセンターと分ける必要はなくて、同じ識別をしたらということです。dionとかも。
749root▲ ★
NGNG >>748
技術的には bbs.cgi での「特別扱い具合」を示しているですね。
つまり、bbs.cgi 内で他の端末よりも手厚く取り扱っているわけです。
で、私自身も京ぽん使いで、o が出る板(こことか)にちょくちょく書いているですが、
あんまりそうゆうこと言われたことないです。
技術的には bbs.cgi での「特別扱い具合」を示しているですね。
つまり、bbs.cgi 内で他の端末よりも手厚く取り扱っているわけです。
で、私自身も京ぽん使いで、o が出る板(こことか)にちょくちょく書いているですが、
あんまりそうゆうこと言われたことないです。
2005/07/02(土) 18:39:02ID:8PRXTeyH0
2005/07/02(土) 19:08:59ID:0Im+zYFu0
2005/07/02(土) 19:27:39ID:pqeP7+DPO
煽る奴は無視すればいいだけ
2005/07/02(土) 19:30:55ID:8UGV20P00
>システム用件と業務用件を切り分け出来ていない見本で砂
そうですねっ
* 挑発には乗らない。挑発するような人の意見は、たいてい誰も重要視しません。
そうですねっ
* 挑発には乗らない。挑発するような人の意見は、たいてい誰も重要視しません。
2005/07/02(土) 20:01:46ID:C+lXVmU/0
どうせ識別されるとマズいようなレスばっかりしてるんだろ
755748
2005/07/02(土) 22:09:17ID:KCuDl3J/o >>749
あーなるほど・・・、味ポンのブラウザがリファラ吐かないってやつですか。
しかし、京ポンはリファラ吐くにもかかわらず、味ポンルートで処理されるようになってしまったのですね。
なまじリファラ吐くせいで、クラシックから書こうとすると弾かれてましたっけか。
そのためリファラを無視するようにしたんじゃなかったですかね。なんか本末転倒…。
あーなるほど・・・、味ポンのブラウザがリファラ吐かないってやつですか。
しかし、京ポンはリファラ吐くにもかかわらず、味ポンルートで処理されるようになってしまったのですね。
なまじリファラ吐くせいで、クラシックから書こうとすると弾かれてましたっけか。
そのためリファラを無視するようにしたんじゃなかったですかね。なんか本末転倒…。
756root▲ ★
2005/07/03(日) 00:18:13ID:???0 >>750
そうか。
でも、それで著しく不公平になったとは思えないんで
(AIR-EDGE PHONEユーザが日本全体で1000人しかいないとかだったら、
ひょっとすると不公平なのかもかもだけど)、
変える気は今のところないです。すんません。
そうか。
でも、それで著しく不公平になったとは思えないんで
(AIR-EDGE PHONEユーザが日本全体で1000人しかいないとかだったら、
ひょっとすると不公平なのかもかもだけど)、
変える気は今のところないです。すんません。
757root▲ ★
NGNG >>755
で、2ちゃんねるではだいぶ前からリファラの有無のチェックはしているので
(少なくとも味ぽんや京ぽんが出るのよりも前から)、
なので、
> なまじリファラ吐くせいで、クラシックから書こうとすると弾かれてましたっけか。
> そのためリファラを無視するようにしたんじゃなかったですかね。
というのは正確ではなくて、
味ぽんからの書き込みに対応するために、AIR-EDGE PHONEセンターからの
アクセスではリファラを無視するようにした
というのが、たぶん正しいと思われるです。
当時、不動楽さん(= クラシックさん)がそのように対応したはず。
で、2ちゃんねるではだいぶ前からリファラの有無のチェックはしているので
(少なくとも味ぽんや京ぽんが出るのよりも前から)、
なので、
> なまじリファラ吐くせいで、クラシックから書こうとすると弾かれてましたっけか。
> そのためリファラを無視するようにしたんじゃなかったですかね。
というのは正確ではなくて、
味ぽんからの書き込みに対応するために、AIR-EDGE PHONEセンターからの
アクセスではリファラを無視するようにした
というのが、たぶん正しいと思われるです。
当時、不動楽さん(= クラシックさん)がそのように対応したはず。
758755:748
2005/07/03(日) 04:40:33ID:tQyFxUHBo >>757
それは味ポン互換のUAの場合ですね。
UAがOperaの場合はPCルートなので、クラシックから書き込みしようとするとリファラで書けませんでした。
で、具体的には分からないのですが、味ポンと同じようにリファラを無視するようにしたのではないでしょうか。
リファラがi2ch.netの場合の書き込みをOKにしたわけではないようですし。
↓このあたり
携帯→2ch運用情報スレッド12
http://qb5.2ch.net/test/read.cgi/operate/1094575260/346-
京ポンに関しては必要以上に面倒なことをやってる気がするですよ。
それは味ポン互換のUAの場合ですね。
UAがOperaの場合はPCルートなので、クラシックから書き込みしようとするとリファラで書けませんでした。
で、具体的には分からないのですが、味ポンと同じようにリファラを無視するようにしたのではないでしょうか。
リファラがi2ch.netの場合の書き込みをOKにしたわけではないようですし。
↓このあたり
携帯→2ch運用情報スレッド12
http://qb5.2ch.net/test/read.cgi/operate/1094575260/346-
京ポンに関しては必要以上に面倒なことをやってる気がするですよ。
759root▲ ★
NGNG >>758
ふむ。
そのスレの384にこんな書き込みがあるので、確かに当時、何かしているようですね。
384 名前:不動楽 ★[sage] 投稿日:04/09/19 23:07:56 ID:???
>>381
IP帯域及びリファラエラーの調整してみました。
どうでしょ?
今のbbs.cgiでは、
・AIR-EDGE PHONEセンターのIPアドレスレンジからの接続だったら(*1)、
・リファラの扱いは他の携帯電話と同じ扱いにするけど、
・識別情報が来ないので、ID生成やSamba24はPCと同じに扱う
って、なっているです。
ようは、携帯とPCの中間みたいな扱いですね。
AIR-EDGE PHONEも識別情報を送ってきてくれると、楽なんですが。
(*1)http://www.willcom-inc.com/p_s/products/airh_phone/ip.html
ふむ。
そのスレの384にこんな書き込みがあるので、確かに当時、何かしているようですね。
384 名前:不動楽 ★[sage] 投稿日:04/09/19 23:07:56 ID:???
>>381
IP帯域及びリファラエラーの調整してみました。
どうでしょ?
今のbbs.cgiでは、
・AIR-EDGE PHONEセンターのIPアドレスレンジからの接続だったら(*1)、
・リファラの扱いは他の携帯電話と同じ扱いにするけど、
・識別情報が来ないので、ID生成やSamba24はPCと同じに扱う
って、なっているです。
ようは、携帯とPCの中間みたいな扱いですね。
AIR-EDGE PHONEも識別情報を送ってきてくれると、楽なんですが。
(*1)http://www.willcom-inc.com/p_s/products/airh_phone/ip.html
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【🍙】貧しくなるニッポン…先進国ダントツ エンゲル係数 43年ぶり高い水準 ★2 [煮卵★]
- 【サッカー】佐野海舟が「いい人すぎる」 能登半島地震に100万円寄付「復興が進んでいないと…」 [冬月記者★]
- 道路陥没事故、原因は“技術者をないがしろにしたツケ”か 日本に必要な政策は「工業高校の設備科を増やすこと」 ★3 [お断り★]
- 今田耕司、アップルウォッチが「一番便利」「買い物できる、電車乗れる…」高級時計は「時間しか見られへん。何百万払うても」 [muffin★]
- 【芸能】『統合失調症』公表のハウス加賀谷 参加費3000円納得できず前日にイベント参加キャンセル 「無料で行われると思っていた」 [冬月記者★]
- 石破首相「対米投資1兆ドル」 トランプ氏「日本守る」 ★3 [蚤の市★]
- 🌃夜のホロライブ💋
- 【トラ茂】トランプ、緊急来日へ!石破の要請受け入れ [219241683]
- 【技術立国】なぜ、日本で自動運転がいまいち進展しないのか?半導体と同じくらいにカネ突っ込むべきじゃないの?安倍 [219241683]
- うんちブリブリブリトー🌯🏡
- 【画像】この車、何かがおかしい [394133584]
- 【 回答秒数は】週末夜のクイズスレ【自分で決めろ!】