peko鯖の稼動によりボトルネックの一つである事がより明らかになった
bbs.cgi作り直しプロジェクトです。
【開発環境の工事現場】
また挑戦。@2ch掲示板 http://dso.2ch.net/myanmar/
また挑戦2。@2ch掲示板 http://dso.2ch.net/yangon/
関連スレなどは >>2-5 くらい
bbs.cgi再開発プロジェクト5
■ このスレッドは過去ログ倉庫に格納されています
04/12/20 07:38:07ID:KYFJjC4V
102FOX ★
04/12/21 22:06:29ID:??? 配布は yyなんたらを動かせば一発です
103不動楽 ★
04/12/21 22:07:16ID:??? おおっ、了解です
104不動楽 ★
04/12/21 22:25:48ID:??? 完了です。
04/12/22 10:54:26ID:jgLU1x2p
遅まきながら
かぼちゃワイン
かぼちゃワイン
106root▲ ★
04/12/22 11:15:56ID:??? 質問・雑談スレ86@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1103460767/578
こういうのをある程度防ぐために、以下の手法がよく使われていますが、
さて、どうしましょうかね。
1)gethostbyaddr()して得た名前
(いわゆるリモホ、今まではそのまま信用)に対してgethostbyname()する
# そもそも引けなかった時(生IPアドレス)は、gethostbyname()しても意味がないので注意
2)得られたIPアドレス群(gethostbyname()で得られるIPアドレスは一つとは限らない)に
最初のIPアドレスが含まれているか調べる
3-1)IPアドレスが含まれていれば
1)の結果を信用する
3-2)含まれていなければ
1)は偽装とみなし、逆引きできなかったことにする
http://qb5.2ch.net/test/read.cgi/operate/1103460767/578
こういうのをある程度防ぐために、以下の手法がよく使われていますが、
さて、どうしましょうかね。
1)gethostbyaddr()して得た名前
(いわゆるリモホ、今まではそのまま信用)に対してgethostbyname()する
# そもそも引けなかった時(生IPアドレス)は、gethostbyname()しても意味がないので注意
2)得られたIPアドレス群(gethostbyname()で得られるIPアドレスは一つとは限らない)に
最初のIPアドレスが含まれているか調べる
3-1)IPアドレスが含まれていれば
1)の結果を信用する
3-2)含まれていなければ
1)は偽装とみなし、逆引きできなかったことにする
04/12/22 12:00:11ID:/NsCurcp
ログ記録(BBXとかBBQとかも)で不都合がないのであれば
そのままでもいいんでないかと。
いちいち参照するのは無駄なような気がするです。
と、中身もよくわからずに書いてみる。
そのままでもいいんでないかと。
いちいち参照するのは無駄なような気がするです。
と、中身もよくわからずに書いてみる。
108ひろゆき@どうやら管理人 ★
04/12/22 12:32:47ID:??? リモホは参考程度でいいんでないすか?
結局はIPで作業するわけで、、
3回作業コストかけるのはもったいないような。。
結局はIPで作業するわけで、、
3回作業コストかけるのはもったいないような。。
110ひろゆき@どうやら管理人 ★
04/12/22 13:21:14ID:??? もしくは、fusianasanのときにIPも出すようにするとか。
111FOX ★
04/12/22 13:23:30ID:??? IP「も」ってことね、
やってみるかな、
問題があるとすれば名前欄の長さ制限かな?
やってみるかな、
問題があるとすれば名前欄の長さ制限かな?
04/12/22 13:27:14ID:hgyGSa7K
X_FORWARDED_FOR(だよね?)を使うのをやめるとか。
113FOX ★
04/12/22 13:28:51ID:??? fusiana の時だけ特例で「ちょっと」のばすとか・・・
04/12/22 13:30:29ID:hgyGSa7K
115▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo
04/12/22 13:51:57ID:tTVdYtRU fushianasanのIP(0.0.0.0)化ですか。
hostname知りたい人は各自でgetbyhostnameとかしてください。と。
いいんじゃないですかね。
hostname知りたい人は各自でgetbyhostnameとかしてください。と。
いいんじゃないですかね。
117▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo
04/12/22 14:35:42ID:tTVdYtRU04/12/22 15:31:55ID:vJ+dVRH1
119動け動けウゴウゴ2ちゃんねる
04/12/22 17:11:27ID:SPbx5oi3( ´,_ゝ`)プッ
04/12/22 17:18:36ID:Jfl3/xyi
つ▲
04/12/22 17:25:00ID:RRXo9eDP
っ▲
(゚〜゚)モグモグ
IP付きふしあなて名前欄じゃなきゃだめなん?
(゚〜゚)モグモグ
IP付きふしあなて名前欄じゃなきゃだめなん?
04/12/22 17:42:42ID:Px5MejiF
おっ!
123▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo
04/12/22 18:35:23ID:tTVdYtRU あのーそれは私が装備ですか?>>120
04/12/22 18:42:11ID:SyUueS0P
全部もらった!
125/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo
04/12/22 18:44:22ID:tTVdYtRU04/12/22 21:42:05ID:HciIbquA
そういや mokorikomo はどうなったの?あれの復活だめなの?
127root▲ ★
04/12/23 03:32:58ID:??? 携帯→2ch運用情報スレッド14
http://qb5.2ch.net/test/read.cgi/operate/1103457589/126-134
ということで、Vodafoneの携帯UAの変化にとりあえず対応したです。
http://qb5.2ch.net/test/read.cgi/operate/1103457589/126-134
ということで、Vodafoneの携帯UAの変化にとりあえず対応したです。
128FOX ★
04/12/25 02:09:43ID:??? お題「SpeedyCGI(Perl)でタイムアウトはどう捕まえるの?」
129FOX ★
04/12/25 02:33:58ID:??? bbs.cgi のバージョン表記(各板のindex.html下部)に
SpeedyCGI=yes と表示したのは大失敗だった。
ぐーぐるに大量に引っかかる〜
SpeedyCGI=yes と表示したのは大失敗だった。
ぐーぐるに大量に引っかかる〜
131FOX ★
04/12/25 02:46:40ID:??? 世界中でさがしたら ロシア語ばっかり引っかかるし
途方にくれてきたぞ、
途方にくれてきたぞ、
132素人
04/12/25 02:54:35ID:KlxOWqE1 表示設定をクリックするのだ。
(クリスマスじゃなくてHappy Holiday なんだなー。)
(クリスマスじゃなくてHappy Holiday なんだなー。)
133FOX ★
04/12/25 02:54:57ID:??? > root ★さん
timeout の処理の実験するとき
たとえば bbs.2ch.net. のかわりに適当に
BBB.2ch.net. なんてのを使えばいいですかねぇ
timeout の処理の実験するとき
たとえば bbs.2ch.net. のかわりに適当に
BBB.2ch.net. なんてのを使えばいいですかねぇ
134root▲ ★
04/12/25 02:57:47ID:??? >>133
それだと、すぐに結果が返っちゃうですね(ないよ、と言って)。
タイムアウトするようにするには、ひとつ子供のゾーンを切らないとだめです。
peko.2ch.netの下にわざとタイムアウトするドメイン名をひとつ作りますので、
それを使ってくださいです。
それだと、すぐに結果が返っちゃうですね(ないよ、と言って)。
タイムアウトするようにするには、ひとつ子供のゾーンを切らないとだめです。
peko.2ch.netの下にわざとタイムアウトするドメイン名をひとつ作りますので、
それを使ってくださいです。
135FOX ★
04/12/25 02:58:57ID:??? わーい
136root▲ ★
04/12/25 03:04:14ID:??? timeout.peko.2ch.net ってのを作りました。
ここの配下は必ずタイムアウトします。
bbs.2ch.net のかわりに、timeout.peko.2ch.net をつけて
gethostbyname() するようにしてください。
ここの配下は必ずタイムアウトします。
bbs.2ch.net のかわりに、timeout.peko.2ch.net をつけて
gethostbyname() するようにしてください。
137FOX ★
04/12/25 03:05:13ID:??? 挑戦 !!
138FOX ★
04/12/25 03:06:08ID:??? ccc
139FOX ★
04/12/25 03:07:26ID:??? ccc
140FOX ★
04/12/25 03:08:08ID:??? timeout が timeout しないような。。。
141FOX ★
04/12/25 03:08:41ID:??? と 思ったら
このスレでテストしていた。
ぎゃふん
このスレでテストしていた。
ぎゃふん
144FOX ★
04/12/25 03:19:15ID:??? In start_perl, use a poll() timeout instead of an alarm to implement the timeout
while waiting for an accept. It's cleaner than a signal.
らしいんだが、Perlでpoll() ってどうやって使うんだ?
while waiting for an accept. It's cleaner than a signal.
らしいんだが、Perlでpoll() ってどうやって使うんだ?
145root▲ ★
04/12/25 03:22:14ID:???146FOX ★
04/12/25 03:36:29ID:??? どもども
わたしもぐるぐるとぐるぐるしています
わたしもぐるぐるとぐるぐるしています
147root▲ ★
04/12/25 04:16:52ID:??? poll() っていうぐらいで、select() のように fd ベースでやる時に使うのかな。
とすると、gethostbyname() の待ちには使えないのかな。
んでは、どうすべきか。
とすると、gethostbyname() の待ちには使えないのかな。
んでは、どうすべきか。
148root▲ ★
04/12/25 04:17:32ID:??? 待ちじゃなくて、タイムアウトでの抜け出しと。
今こうやっててうまく動かない、ってのを、
まずは書き出してみるといいのかも。
今こうやっててうまく動かない、ってのを、
まずは書き出してみるといいのかも。
149root▲ ★
04/12/25 04:19:00ID:???150root▲ ★
04/12/25 04:24:49ID:??? あと、これとか。これは逆引きの例かな。
http://www.tohoho-web.com/lng/199905/99050053.htm
ねむくなったんで、Googleの検索結果をそのまま貼ってみる。
http://www.google.com/search?num=50&hl=ja&c2coff=1&q=Perl+alarm+%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%A2%E3%82%A6%E3%83%88&lr=
http://www.tohoho-web.com/lng/199905/99050053.htm
ねむくなったんで、Googleの検索結果をそのまま貼ってみる。
http://www.google.com/search?num=50&hl=ja&c2coff=1&q=Perl+alarm+%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%A2%E3%82%A6%E3%83%88&lr=
151root▲ ★
04/12/25 04:26:01ID:??? で、こういったalarm()を使う手法がSpeedyCGI配下では使えないとすると、、、さて、どうすべか。
ってことですね。
ってことですね。
154root▲ ★
04/12/25 04:48:46ID:??? >>153
サザンさんバージョンですね。
この手法が使えないとすると、、、。
どうやるんだろう。
$SIG{ALRM} = \&timeout;
のところの指定を、SpeedyCGI 流にしないといかんのだろうか。
わたしは斜めにしか理解してないけど、例のグローバルバリュー問題とか。
まとはずれだったらごめんなさい。
サザンさんバージョンですね。
この手法が使えないとすると、、、。
どうやるんだろう。
$SIG{ALRM} = \&timeout;
のところの指定を、SpeedyCGI 流にしないといかんのだろうか。
わたしは斜めにしか理解してないけど、例のグローバルバリュー問題とか。
まとはずれだったらごめんなさい。
155FOX ★
04/12/25 05:00:45ID:??? IO::POll はいわゆるハンドルだったら使えるみたい
たとえば IO::Socket で作ったオブジェクトのハンドル
もちろん IO::File で作ったファイルハンドル
IO::Socket でオブジェクト作って getHostbyName と等価なことできないのかしらん?
たとえば IO::Socket で作ったオブジェクトのハンドル
もちろん IO::File で作ったファイルハンドル
IO::Socket でオブジェクト作って getHostbyName と等価なことできないのかしらん?
156root▲ ★
04/12/25 05:01:54ID:??? Net::DNS がよいと思います。
157FOX ★
04/12/25 05:02:40ID:??? >>154
たぶんシグナルは発生するんだと思うけど、、、
SpeedyCGI配下では伝わってこないんだと思う(推測)
よって捕まえることはできない、、
もしくは eval がどのようにコンパイルされているのかとか、
たぶんシグナルは発生するんだと思うけど、、、
SpeedyCGI配下では伝わってこないんだと思う(推測)
よって捕まえることはできない、、
もしくは eval がどのようにコンパイルされているのかとか、
158root▲ ★
04/12/25 05:06:49ID:??? http://www.net-dns.org/docs/
http://www.net-dns.org/docs/Net/DNS.html
で、該当名のAレコードがあるかどうかというのが、
gethostbyname() と等価ですね。
tigerには入れてあるけど、bananaはどうかな。
ちょっとみてきます。
http://www.net-dns.org/docs/Net/DNS.html
で、該当名のAレコードがあるかどうかというのが、
gethostbyname() と等価ですね。
tigerには入れてあるけど、bananaはどうかな。
ちょっとみてきます。
159root▲ ★
04/12/25 05:07:54ID:??? qb6には入ってますね。
たぶん、全banana/tiger/cobraで使えるでしょう。< Net::DNS
たぶん、全banana/tiger/cobraで使えるでしょう。< Net::DNS
160FOX ★
04/12/25 05:08:07ID:??? Net::DNS あたりは
あらかじめタイムアウトの設定が入っているのかな?
そんな気がするが、
あらかじめタイムアウトの設定が入っているのかな?
そんな気がするが、
161root▲ ★
04/12/25 05:10:06ID:??? で、、、Net::DNS って、いわゆる Dynamic update にも対応してるから、
クライアント側からサーバ側へのダイナミックな登録
(例えばbbs.cgiからのダイナミックなDNS DBへの登録)とかも、できるはずですね。
もちろんその場合、サーバ側がDynamic Updateに対応している必要があります。
クライアント側からサーバ側へのダイナミックな登録
(例えばbbs.cgiからのダイナミックなDNS DBへの登録)とかも、できるはずですね。
もちろんその場合、サーバ側がDynamic Updateに対応している必要があります。
162root▲ ★
04/12/25 05:11:36ID:??? ここのサンプル見ると、入っているように見えますね。
http://www.net-dns.org/docs/Net/DNS.html
つか、まさにこれ?
Send a background query and use select to determine when the answer has arrived.
use Net::DNS;
use IO::Select;
my $timeout = 5;
my $res = Net::DNS::Resolver->new;
my $bgsock = $res->bgsend("host.example.com");
my $sel = IO::Select->new($bgsock);
# Add more sockets to $sel if desired.
my @ready = $sel->can_read($timeout);
if (@ready) {
foreach my $sock (@ready) {
if ($sock == $bgsock) {
my $packet = $res->bgread($bgsock);
$packet->print;
$bgsock = undef;
}
# Check for the other sockets.
$sel->remove($sock);
$sock = undef;
}
} else {
warn "timed out after $timeout seconds\n";
}
http://www.net-dns.org/docs/Net/DNS.html
つか、まさにこれ?
Send a background query and use select to determine when the answer has arrived.
use Net::DNS;
use IO::Select;
my $timeout = 5;
my $res = Net::DNS::Resolver->new;
my $bgsock = $res->bgsend("host.example.com");
my $sel = IO::Select->new($bgsock);
# Add more sockets to $sel if desired.
my @ready = $sel->can_read($timeout);
if (@ready) {
foreach my $sock (@ready) {
if ($sock == $bgsock) {
my $packet = $res->bgread($bgsock);
$packet->print;
$bgsock = undef;
}
# Check for the other sockets.
$sel->remove($sock);
$sock = undef;
}
} else {
warn "timed out after $timeout seconds\n";
}
163root▲ ★
04/12/25 05:13:46ID:??? もう、わたし限界っす。
Net::DNS使う方針なら、たぶんかなりエレガントに書けるですね。
あとはマニュアル・ドキュメントを読んでいただけると、うれしいっす。
というか、こういうモジュールを柔軟に使えるのも、PIEに移ったおかげかもですね。
Net::DNS使う方針なら、たぶんかなりエレガントに書けるですね。
あとはマニュアル・ドキュメントを読んでいただけると、うれしいっす。
というか、こういうモジュールを柔軟に使えるのも、PIEに移ったおかげかもですね。
164FOX ★
04/12/25 05:14:28ID:??? tcp_timeout
print 'TCP timeout: ', $res->tcp_timeout, "\n";
$res->tcp_timeout(10);
Get or set the TCP timeout in seconds. A timeout of undef means indefinite. The default is 120 seconds (2 minutes).
udp_timeout
print 'TCP timeout: ', $res->tcp_timeout, "\n";
$res->tcp_timeout(10);
Get or set the TCP timeout in seconds. A timeout of undef means indefinite. The default is 120 seconds (2 minutes).
udp_timeout
166FOX ★
04/12/25 05:15:29ID:???167root▲ ★
04/12/25 05:16:15ID:???168root▲ ★
04/12/25 05:18:47ID:??? >>166
はい、了解です。
でもなんか、糸口がつかめそうな予感。
banana238ですが、
live8 に激しく来た時もバッファ溢れしなかったし、
思い切ってバッファでかくしたのは、効果あったかも。
なにせCPUもディスクも遊んでいるから、もうちょっとあがいてみたいなと。
はい、了解です。
でもなんか、糸口がつかめそうな予感。
banana238ですが、
live8 に激しく来た時もバッファ溢れしなかったし、
思い切ってバッファでかくしたのは、効果あったかも。
なにせCPUもディスクも遊んでいるから、もうちょっとあがいてみたいなと。
169FOX ★
04/12/25 05:29:45ID:??? ccc
170FOX ★
04/12/25 05:38:03ID:??? その1
これでうまく行った
use Net::DNS;
my $res = Net::DNS::Resolver->new;
$res->tcp_timeout(1);
$res->udp_timeout(1);
my $ans = $res->query($BHOST);
tcp/udp の timeout をそれぞれ 1(sec) にした。
0だとどうかなと思ってやってみたら、だめだった。
もっと短くする方法は無いものか
これでうまく行った
use Net::DNS;
my $res = Net::DNS::Resolver->new;
$res->tcp_timeout(1);
$res->udp_timeout(1);
my $ans = $res->query($BHOST);
tcp/udp の timeout をそれぞれ 1(sec) にした。
0だとどうかなと思ってやってみたら、だめだった。
もっと短くする方法は無いものか
171FOX ★
04/12/25 05:52:16ID:???172FOX ★
04/12/25 05:52:49ID:??? 専用のサブルーチンを作った
sub foxDNSquery
{
my ($host) = @_;
use Net::DNS;
my $res = Net::DNS::Resolver->new;
$res->tcp_timeout(1);
$res->udp_timeout(1);
$res->retry(1);
my $ans = $res->query($host);
#we don't need answer.
}
sub foxDNSquery
{
my ($host) = @_;
use Net::DNS;
my $res = Net::DNS::Resolver->new;
$res->tcp_timeout(1);
$res->udp_timeout(1);
$res->retry(1);
my $ans = $res->query($host);
#we don't need answer.
}
173FOX ★
04/12/25 05:53:26ID:??? 新スレ立ったとき
my $AHOST = "$GB->{NEWTHREAD}.$GB->{FORM}->{'bbs'}.$ENV{'SERVER_NAME'}.bby.2ch.net.";
&foxDNSquery($AHOST);
my $AHOST = "$GB->{NEWTHREAD}.$GB->{FORM}->{'bbs'}.$ENV{'SERVER_NAME'}.bby.2ch.net.";
&foxDNSquery($AHOST);
174FOX ★
04/12/25 05:53:56ID:??? 全ての投稿(成功時)
my $BYTES = length($GB->{FORM}->{'MESSAGE'});
#my $BHOST = "$GB->{NOWTIME}.$$.$ENV{'REMOTE_ADDR'}.$GB->{NEWTHREAD}.$BYTES.$GB->{FORM}->{'key'}.$GB->{FORM}->{'bbs'}.$ENV{'SERVER_NAME'}.bbs.timeout.peko.2ch.net.";
my $BHOST = "$GB->{NOWTIME}.$$.$ENV{'REMOTE_ADDR'}.$GB->{NEWTHREAD}.$BYTES.$GB->{FORM}->{'key'}.$GB->{FORM}->{'bbs'}.$ENV{'SERVER_NAME'}.bbs.bbs.2ch.net.";
&foxDNSquery($BHOST);
my $BYTES = length($GB->{FORM}->{'MESSAGE'});
#my $BHOST = "$GB->{NOWTIME}.$$.$ENV{'REMOTE_ADDR'}.$GB->{NEWTHREAD}.$BYTES.$GB->{FORM}->{'key'}.$GB->{FORM}->{'bbs'}.$ENV{'SERVER_NAME'}.bbs.timeout.peko.2ch.net.";
my $BHOST = "$GB->{NOWTIME}.$$.$ENV{'REMOTE_ADDR'}.$GB->{NEWTHREAD}.$BYTES.$GB->{FORM}->{'key'}.$GB->{FORM}->{'bbs'}.$ENV{'SERVER_NAME'}.bbs.bbs.2ch.net.";
&foxDNSquery($BHOST);
175FOX ★
04/12/25 05:58:35ID:??? ここまでを全サーバに配布ー
176FOX ★
04/12/25 06:00:13ID:??? 配布完了。
とくに苦情が無ければ BBS , BBY を落として
ちゃんとタイムアウトするかの実験が可能でーす > root ★さん
とくに苦情が無ければ BBS , BBY を落として
ちゃんとタイムアウトするかの実験が可能でーす > root ★さん
177root▲ ★
04/12/25 06:00:16ID:??? おふろ入ったら、ちょっと目がさめちゃった。
でももうねるる。
>>170
$res->bgsend って、どうなんだろう。
http://www.net-dns.org/docs/Net/DNS/Resolver.html
でももうねるる。
>>170
$res->bgsend って、どうなんだろう。
http://www.net-dns.org/docs/Net/DNS/Resolver.html
178root▲ ★
04/12/25 06:00:46ID:??? うわ、すごいー。
今、1秒バージョンですか。
今、1秒バージョンですか。
179FOX ★
04/12/25 06:00:59ID:??? どなんですかね、
ぼちぼち研究してみるです
ぼちぼち研究してみるです
180root▲ ★
04/12/25 06:01:44ID:??? まずは、DNS queryがちゃんと出てるか、サーバのほうを見てきます(w。
181root▲ ★
04/12/25 06:05:21ID:??? BBS/BBYにはquery来ている模様です。
BBQとBBMはまだ元の状態ですか。
BBQとBBMはまだ元の状態ですか。
182root▲ ★
04/12/25 06:07:42ID:??? んじゃ、BBSを落としてみるかな。
これ書いたら、BBS止めます。
これ書いたら、BBS止めます。
183root▲ ★
04/12/25 06:08:07ID:??? 今、止まっています。
184root▲ ★
04/12/25 06:08:18ID:??? おぉ、いいかんじ。
185root▲ ★
04/12/25 06:08:54ID:??? 6:10 まで止めておいてみよう。
187root▲ ★
04/12/25 06:10:53ID:???188root▲ ★
04/12/25 06:11:08ID:??? んじゃ、BBS戻します。
189FOX ★
04/12/25 06:11:30ID:??? 一回タイムアウト検出したら
その船からは二度と聞きに行かないという実装もありかもかも
その船からは二度と聞きに行かないという実装もありかもかも
190root▲ ★
04/12/25 06:11:51ID:??? 戻しました。また、ひとつ進歩したですね。
191FOX ★
04/12/25 06:12:08ID:??? ですね、
192root▲ ★
04/12/25 06:12:44ID:???193FOX ★
04/12/25 06:12:58ID:??? #we don't need any answer.
だったっすね、
だったっすね、
196root▲ ★
04/12/25 06:27:26ID:??? #! /usr/bin/perl
use Net::DNS;
my $res = Net::DNS::Resolver->new;
my $ans = $res->query('2ch.net');
@answer = $ans->answer;
print "address = ", $answer[0]->address, "\n";
BBQやBBMは、このパターンでOKかと。
というか、Perlぜんぜんわかんないんで、超みようみまね。
use Net::DNS;
my $res = Net::DNS::Resolver->new;
my $ans = $res->query('2ch.net');
@answer = $ans->answer;
print "address = ", $answer[0]->address, "\n";
BBQやBBMは、このパターンでOKかと。
というか、Perlぜんぜんわかんないんで、超みようみまね。
197root▲ ★
04/12/25 06:30:08ID:??? で、undefだったらBBQやBBMにはひっかかってなくて、
127.0.0.1だったらひっかかってる、って判定すればいいはず。
127.0.0.1だったらひっかかってる、って判定すればいいはず。
198root▲ ★
04/12/25 06:33:00ID:??? 127.0.0.2 だった。
199FOX ★
04/12/25 06:33:20ID:??? はいはーい
明日以降挑戦してみるです、
それにしてもPerlの達人が居ればねぇ
明日以降挑戦してみるです、
それにしてもPerlの達人が居ればねぇ
200root▲ ★
04/12/25 06:39:53ID:??? たしかに、、、。
で、DNSのことは少しは知っているので、ちょっとやってみた。
なるほど、数はこうやってとればいいのね。
(c.2ch.netはアドレス2つ)
#! /usr/bin/perl
use Net::DNS;
my $res = Net::DNS::Resolver->new;
my $ans = $res->query('c.2ch.net');
@answer = $ans->answer;
print "count = ", $ans->header->ancount, "\n";
print "address = ", $answer[0]->address, "\n";
print "address = ", $answer[1]->address, "\n";
で、DNSのことは少しは知っているので、ちょっとやってみた。
なるほど、数はこうやってとればいいのね。
(c.2ch.netはアドレス2つ)
#! /usr/bin/perl
use Net::DNS;
my $res = Net::DNS::Resolver->new;
my $ans = $res->query('c.2ch.net');
@answer = $ans->answer;
print "count = ", $ans->header->ancount, "\n";
print "address = ", $answer[0]->address, "\n";
print "address = ", $answer[1]->address, "\n";
201root▲ ★
04/12/25 06:42:59ID:??? ということで、
undefになった場合 または undefじゃなくても、ans->header->ancountが0の場合
は、BBQ/BBMにひっかかってないとみなし、
ans->header->ancountが1以上で、配列の中身が127.0.0.2なら
BBQ/BBMにひっかかっているとみなせばいいのか。
ここまでわかれば、あとはFOXさんならすぐできるんじゃないかなと思います。
んでは、あとは明日にでも。
undefになった場合 または undefじゃなくても、ans->header->ancountが0の場合
は、BBQ/BBMにひっかかってないとみなし、
ans->header->ancountが1以上で、配列の中身が127.0.0.2なら
BBQ/BBMにひっかかっているとみなせばいいのか。
ここまでわかれば、あとはFOXさんならすぐできるんじゃないかなと思います。
んでは、あとは明日にでも。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【京都】「中国の一部になるのに消されるよ」 マナー違反を注意した、高台寺岡林院が脅される [夜のけいちゃん★]
- 【訃報】俳優・下條アトムさん死去 78歳 23年急性硬膜下血腫患い闘病中 ウルルン「出会ったぁ~」でおなじみ [少考さん★]
- 【高校授業料無償化】私立高校は支援上限、年39万円 自公案、維新に提示 [蚤の市★]
- タレント「潜在視聴率」極秘データで判明!マツコとは対照的な有吉弘行の「急落ぶり」 [ネギうどん★]
- 【NHK】『こころ旅』“2代目旅人”決定 まさかの大物女優にネット驚き「意外」「いちばんイイ」 [湛然★]
- 【米価】“消えた21万トン”流通目詰まりか…備蓄米放出へ 価格高騰に歯止めか ★5 [Ikhtiandr★]
- 【悲報】外国人、日本人の焼肉の食べ方に発狂 [691850561]
- 【安倍悲報】JDI, 「日の丸有機EL」の自社生産を断念。ジャップは何をやらせてもダメ。くだらないアベノミクスで終わっちゃったね、また [586791477]
- 【ジャップ悲報】日本人ガール「ちょっと待って。30超えて車もってない男、恥ずかしくないの?」 [732289945]
- 【悲報】黒人化したキャプテン・アメリカ最新作映画、評論家から酷評されまくるwwwwwwwwwwwwwwwwwwwwwwwwwwx [839150984]
- 【訃報】アトムさん死去 [583597859]
- 「日本人がアサクリの弥助にあんなに怒り狂ったのは彼が黒人だったから。白人ならそこまで荒れなかった」感情論抜きに反論できる? [811796219]