X



bbs.cgi再開発プロジェクト5

■ このスレッドは過去ログ倉庫に格納されています
04/12/20 07:38:07ID:KYFJjC4V
peko鯖の稼動によりボトルネックの一つである事がより明らかになった
bbs.cgi作り直しプロジェクトです。

【開発環境の工事現場】
また挑戦。@2ch掲示板  http://dso.2ch.net/myanmar/
また挑戦2。@2ch掲示板 http://dso.2ch.net/yangon/

関連スレなどは >>2-5 くらい
313FOX ★
垢版 |
04/12/29 15:25:39ID:???
http://www.net-dns.org/docs/Net/DNS/Resolver.html

nameservers
@nameservers = $res->nameservers;
$res->nameservers('192.168.1.1', '192.168.2.2', '192.168.3.3');


Gets or sets the nameservers to be queried.

これを指定すればいいのか?
314FOX ★
垢版 |
04/12/29 15:28:31ID:???
recurse
print 'recursion flag: ', $res->recurse, "\n";
$res->recurse(0);


Get or set the recursion flag. If this is true, nameservers will be requested to perform a recursive query. The default is true.

これも関係ある?
315root▲ ★
垢版 |
04/12/29 15:58:37ID:???
>>313-314
まさにそれっすね。

再帰止めて(>>314)、BB?の用途に応じてそのサーバに直接query出すと。
316root▲ ★
垢版 |
04/12/29 16:03:54ID:???
こんなかんじでいいみたい。

#! /usr/bin/perl

use Net::DNS;

my $res = Net::DNS::Resolver->new;

# specify bbs.2ch.net server
$res->nameservers('206.223.147.35');

# turn off recurse query
$res->recurse(0);

my $ans = $res->send('a.b.c.bbs.2ch.net');
317root▲ ★
垢版 |
04/12/29 16:10:41ID:???
これで、DNSキャッシュサーバを経由せずに、
直接データを持っているDNSコンテンツサーバにDNS問い合わせをするようになります。

BBSとBBYは戻りの結果を利用しないし、
ローカル側でデータのキャッシュが効く必要がまったくない(というか邪魔)ので、
この形にするのがよいですね。

その分レスポンスがよくなるし、DNSキャッシュサーバの負荷も減少します。

BBQ/BBX/BBMは通常通りにキャッシュが効いたほうがいいので、
これまで通りのパターンの方がよさげです。
318root▲ ★
垢版 |
04/12/29 16:15:08ID:???
ホスト名書いても許されるみたい。

BBS
$res->nameservers('a.ns.bbs.2ch.net');

BBY
$res->nameservers('a.ns.bby.2ch.net');

で、いけそう。
319root▲ ★
垢版 |
04/12/29 16:16:57ID:???
IPアドレスで指定するなら、これかな。

BBS
206.223.147.35

BBY
206.223.147.36
320root▲ ★
垢版 |
04/12/29 19:39:31ID:???
しばしば暴走しているのは、どうもsubbbs.cgiの模様。
04/12/29 21:28:51ID:DLx+j9cw
subbbs.cgiってもう使われてないですよね?
322FOX ★
垢版 |
04/12/29 22:25:08ID:???
subbbs.cgi って良く知らないんです。
詳しい人いないかな?
04/12/29 22:36:09ID:GPE5aLXX
昔は投稿確認に使われていた。
今は全てbbs.cgiでやっている。

ってんじゃなかったか。
04/12/29 22:42:55ID:JJHQio8E
subbbs.cgiを書き替えて見るとか

「subbbs.cgiは使用できなくなりました。」

とか
325FOX ★
垢版 |
04/12/29 22:45:20ID:???
いいんだろか?

暴走するって、たとえばどうなる出素か? >>320
326FOX ★
垢版 |
04/12/29 22:45:55ID:???
BBY/BBS 用のらっぱ

sub foxDNSquery
{
my ($host,$nameserver) = @_;
#$host .= "bbs.timeout.peko.2ch.net.";
use Net::DNS;
my $res = Net::DNS::Resolver->new;
$res->tcp_timeout(1);
$res->udp_timeout(1);
$res->retry(1);
$res->recurse(0);# turn off recurse query
$res->nameservers($nameserver);

my $query = $res->query($host);

if($res->errorstring eq 'query timed out') {return 0;}

return 1;
}
327FOX ★
垢版 |
04/12/29 22:47:18ID:???
>>326 版をex7に入れてみた。
328FOX ★
垢版 |
04/12/29 22:52:48ID:???
特に問題ないようなので
全サーバに配布。
329FOX ★
垢版 |
04/12/29 22:57:45ID:???
http://stats.2ch.net/suzume.cgi を見る限りカウントはされているようだ < BBS
果たして数え落しがなくなるか、 果てしなく0に近づくか、、、
04/12/29 23:02:06ID:GPE5aLXX
いや、
SUBBBS_CGI_ON=1 だと、スレ立て時に確認画面(bbs.cgi)が出て、
ボタン押すともう一回確認画面(subbbs.cgi)が出て、
ボタン押すともう一回確認画面(bbs.cgi)が出て、
ボタン押すとスレ立てできる。
331FOX ★
垢版 |
04/12/29 23:03:12ID:???
>>330
そうなる必要性ってもうないですよね?
04/12/29 23:06:25ID:GPE5aLXX
確認はするとしても一回で良いだろうし、bbs.cgiで足りてるね。
333FOX ★
垢版 |
04/12/29 23:11:51ID:???
subbbs.cgi へ飛ばないようにしてみた
04/12/29 23:15:02ID:GPE5aLXX
お、SUBBBS_CGI_ONを完全無視な感じ?
335FOX ★
垢版 |
04/12/29 23:17:00ID:???
そんな感じ、、

どうなることやら
04/12/29 23:18:15ID:/lQhyvTX
>335
うほ、いきなり実験ですか(汗
トラブルあった場合人なだれ込んでくるからすぐにわかるでしょうけどw
04/12/29 23:22:48ID:GPE5aLXX
おつかれおつかれ。
だいじょぶっしょ。
338FOX ★
垢版 |
04/12/29 23:26:31ID:???
>>326-327
なんだが BBS でカウントできていないサーバがあるようなんだが、、
http://ch2.ath.cx/load/ex9.html
339ひろゆき@どうやら管理人 ★
垢版 |
04/12/29 23:27:27ID:???
SpeedyCGIって、ソケットを使ったりしても大丈夫なんすかね?
340FOX ★
垢版 |
04/12/29 23:29:00ID:???
>>339
たぶん問題ないかと、
04/12/29 23:29:37ID:Ow0vACsz
昨日、スレ立てしようとして何も入力していないのに
いきなり確認画面に行ったのはテスト?の影響ですか?

342FOX ★
垢版 |
04/12/29 23:31:06ID:???
>>338 はBBS/BBY側の設定かしらん?
お前の要求なんぞ受け付けておらんとか、
04/12/29 23:34:50ID:GPE5aLXX
2chの動作報告はここで。 パート16
http://qb5.2ch.net/test/read.cgi/operate/1103455176/114
これと同じで、

BBS_TITLE_LINK

http://www.2ch.net/info.html
だったら
http://info.2ch.net/guide/
に変えてくれないかな。
info.htmlは廃棄されてるので。
板作成時のテンプレも変えてくれるとうれしい。
04/12/29 23:35:24ID:GPE5aLXX
>341
ただのCookie確認だべ。
関係無し。
345FOX ★
垢版 |
04/12/29 23:38:30ID:???
>>343
やってみた
04/12/29 23:42:28ID:GPE5aLXX
>345
わーい、ありがとー。
347FOX ★
垢版 |
04/12/29 23:43:28ID:???
ちなみに =~ /info\.html/ で引っ掛けています
348ひろゆき@どうやら管理人 ★
垢版 |
04/12/29 23:45:37ID:???
>>340
( ̄ー ̄)ニヤリッ
349FOX ★
垢版 |
04/12/29 23:54:08ID:???
うわっ
04/12/29 23:58:00ID:kM7ZnDFz
あーあ(w
351root▲ ★
垢版 |
04/12/29 23:58:31ID:???
うーむ、、、。

>>338 >>342
今ちょっと取り込み中なので、あとでみてみます。
352FOX ★
垢版 |
04/12/30 00:02:56ID:???
>>348
ちなみに何するですか?
どっかから何か読み込んでくる?

入れたら見てみるけど、
そして負荷高かったら直せばいいのか、ブツブツブツブツ
353root▲ ★
垢版 |
04/12/30 00:04:00ID:???
>>348
何しようとしてるんだろう。広告関係かしら、、、。
重い処理が入っちゃうようなら、おじさんが直すんだろうなぁ、やっぱ。ウウム
354FOX ★
垢版 |
04/12/30 00:04:09ID:???
>>333>>343 も特に問題はないようだ、
04/12/30 00:12:07ID:+U2vszG5
Socketを使うとまたタイムアウト問題が出てくるかもしれませんね( ̄ー ̄)ニヤリッ
356FOX ★
垢版 |
04/12/30 00:17:28ID:???
>>335
Socket を使うときはどんなクラス(←Perlでもこの言い方でいいの?)を使うんですか?
Net::Socket とかなんとか便利なものがあるんですか?
Net::Http とか? (←勝手に想像しています)
357ひろゆき@どうやら管理人 ★
垢版 |
04/12/30 00:22:23ID:???
beに登録してるユーザーの場合は、beのDBに見に行くようにしてみようかと。
358ひろゆき@どうやら管理人 ★
垢版 |
04/12/30 00:23:03ID:???
>>356
use socket;
だけで、あとはこそこそと。
359FOX ★
垢版 |
04/12/30 00:27:23ID:???
投稿毎にやるですか、、、
360root▲ ★
垢版 |
04/12/30 00:27:37ID:???
>>325
単純な暴走が起こります。
そのプロセス(perl subbbs.cgi)が、プロセスを100%使ってしまう。
で、120秒分CPUを使うと、むなしく終了していく。

スレ立ての時に直接subbbs.cgiをコールする2ちゃんねるビューワもあるような
気がちょっとしたけど、どうでしたっけ。

>>326
そのコードでたぶん問題ないと思います。
私も、>>329 の変化に注目したい。

>>357
beのDBが落ちていた場合に、どうなるのかしら。
待っちゃう?
361root▲ ★
垢版 |
04/12/30 00:29:41ID:???
全投稿に対してやるとすると、相当気合入れないと大変すよ。サーバ側。
FreeBSD素の設定(各種カーネルチューンしてない状態)では、
ほとんどむりぽなような。

確か今160万投稿とか170万投稿とかあるので、
そのつもりでサーバ側をまじめに強化しないと、かなりきびしいです。
362FOX ★
垢版 |
04/12/30 00:29:47ID:???
>>360
subbbs.cgi をバックアップして
今は使われていませんとしてみよう。
363root▲ ★
垢版 |
04/12/30 00:35:14ID:???
そうか、BBSとBBYのDBに、2ちゃんねるのサーバ全部を登録するようにしなきゃ。
やってきます。
364FOX ★
垢版 |
04/12/30 00:41:51ID:???
うっ 上書きしつまった、
subbbs.cgi は何処か遠くへ・・・

でもどっかのサーバに残っているだろう、きっと。
04/12/30 00:48:48ID:mjkYzHbf
Have a nice surf !!

Top
366root▲ ★
垢版 |
04/12/30 00:48:55ID:???
2ちゃんねるの全bananaサーバからの登録を受け付けるようにした。
カウントアップ復活を確認。

http://stats.2ch.net/suzume.cgi
367root▲ ★
垢版 |
04/12/30 00:49:28ID:???
>>364
368未承諾酩酊※ ◆TWARamEjuA
垢版 |
04/12/30 00:49:38ID:+U2vszG5
>>364
>>364
>>364
>>364
>>364
04/12/30 00:51:11ID:QWSoREWe
あわわわ
とりあえず、ミャンマー当たりで連投スレ建てしまくって不具合無いか調べた
ほうがいい鴨
370未承諾酩酊※ ◆TWARamEjuA
垢版 |
04/12/30 00:52:09ID:+U2vszG5
>>356
ごくごく簡単にURLから何かを拾ってきたいのならばLWP::UserAgentなんてモジュールがあるですよ。
http://search.cpan.org/~gaas/libwww-perl-5.803/lib/LWP/UserAgent.pm
371FOX ★
垢版 |
04/12/30 01:16:05ID:???
bubble2サーバから回収してきた < subbbs.cgi
subbbs-save.cgi で qb6に入れた。
372FOX ★
垢版 |
04/12/30 01:17:55ID:???
>>370
あっ それ知ってる、
boo80 はそれでやったような、
373FOX ★
垢版 |
04/12/30 01:24:37ID:???
$ua = LWP::UserAgent->new() でUA作って
HTTP::Headers->new()
HTTP::Request->new() なんてのを作って
UA にheadrer と Request くべて
$res = $ua->request() すねーるんですよね?

$ua->timeout(15) とか設定して

タイムアウト時は$response->code() あたりを見ればいいのかしら?

374FOX ★
垢版 |
04/12/30 01:30:04ID:???
しかし本筋は
●の時にやったように期限付きのセッションID方式と思われ < be のDB look up
375root▲ ★
垢版 |
04/12/30 01:33:21ID:???
DBが何でできているかわかりませんが、
前にDBIがどうのとかどっかで言っていたような気がするので、
MySQLか何かのサーバと、プロセス間通信しようとしているのかも。
376ひろゆき@どうやら管理人 ★
垢版 |
04/12/30 02:23:43ID:???
>>359
beにログインしてるユーザーの場合だけです。
377未承諾酩酊※ ◆TWARamEjuA
垢版 |
04/12/30 02:32:45ID:+U2vszG5
>>373
そんな感じですー

→タイムアウト時は$response->code() あたりを見ればいいのかしら?
例文の通り、
 $response->status_line;
とすると詳しい情報が得られるようです。('time out' の文字列が含まれています。)
378ひろゆき@どうやら管理人 ★
垢版 |
04/12/30 02:41:02ID:???
$ip = inet_aton($be_host) || print "host($be_host) not found.\n";

$sockaddr = pack_sockaddr_in($port, $ip);
socket(SOCKET, PF_INET, SOCK_STREAM, 0) || print "socket error\n";

connect(SOCKET, $sockaddr) || die "connect $be_host error\n";
autoflush SOCKET (1);

print SOCKET "GET $url HTTP/1.1\n";
print SOCKET "Host: $host\n";
print SOCKET "Connection: close\n\n";
379未承諾酩酊※ ◆TWARamEjuA
垢版 |
04/12/30 02:41:05ID:+U2vszG5
>>377
ちなみに、
$response->status_line のとき。
 500 Can't connect to count.2ch.net:80 (connect: timeout) at ./test.pl line 12.

$response->code() のとき。
 500 at ./te.pl line 12.

となるですー
380ひろゆき@どうやら管理人 ★
垢版 |
04/12/30 02:42:08ID:???
モジュールのほうが重そうな気がしたので、
書いたほうが早いと思ったんですが、どうなんでしょう?
04/12/30 02:43:20ID:PtWy/RYB
外部からbeのデータが覗かれちゃう危険は無いのかしらん、
382FOX ★
垢版 |
04/12/30 02:44:34ID:???
モジュール(って言うんですか?)と同じに書けば同スピード
遅くなるように書けば遅いし
より早いコードを書けば早いかと、

ちなみにコンパイルされるんで
ロードの負荷やコンパイルの負荷は限りなく0です。
383ひろゆき@どうやら管理人 ★
垢版 |
04/12/30 02:45:12ID:???
>>381
DBIだとselect文とかいじれちゃうので、
http経由のほうがいいかなぁと思ったのです。
384ひろゆき@どうやら管理人 ★
垢版 |
04/12/30 02:46:14ID:???
>>378みたいに7行で終わるので、
モジュールよりは、早いんじゃないかなぁ、、と。
385FOX ★
垢版 |
04/12/30 02:46:53ID:???
サーバの場所に実は一番左右されたり < コードの優劣より
386未承諾酩酊※ ◆TWARamEjuA
垢版 |
04/12/30 02:47:25ID:+U2vszG5
>>378
timeout処理がないので、count.2ch.net みたいになると永遠に戻らなくなるですよー(汗)
でもってalarm()を使うと、SpeedyCGIではへんてこりんになるんだっけ?

>>380
リクエストされる数にもよるけれども、10分に1回くらいのリクエストならLWP::UserAgent使う方が楽かもですー
(このあたりはTimeoutをどれくらい取るかに左右されるかと思いますー)
387root▲ ★
垢版 |
04/12/30 02:49:28ID:???
TCPセッション張るですか。
connect() で詰まったら(サーバが落ちてたとかで)、どうするんだろう。
388root▲ ★
垢版 |
04/12/30 02:51:13ID:???
>>386
alerm() はSpeedyCGIでは使えませんです。
モジュール使って、タイムアウト指定しとかないとひどいことになるような。

LWP::UserAgent とかを使って、タイムアウトを入れたほうがよさげ。
389FOX ★
垢版 |
04/12/30 02:52:27ID:???
正常にGETが終了する場合
 >>378 でも >>373 でも
  PIE 内であれば BD の処理を除けば 10ms 以下で終ると予想
  PIE 外(たとえば日本) 200ms かかるかも?

異常な場合(timeout.busy等)
>>378 timeout 処理ないと bbs.cgi が待ち続け他の人がかけなくなる (-M32)
>>373 timeout 処理をたんたんと、

ってとこかな?
390未承諾酩酊※ ◆TWARamEjuA
垢版 |
04/12/30 02:53:26ID:+U2vszG5
>>388
LWPなどはIO:SelectでTimeout処理しているのでSpeedyCGIでもへんてこりんにならないようなのですー
391FOX ★
垢版 |
04/12/30 02:55:01ID:???
あと、、
>>378 の場合はわからないけど
>>373 でやると簡単に HTTPS が使えたり、Proxy経由で参照できたりと
のちのち簡単です
392root▲ ★
垢版 |
04/12/30 02:55:39ID:???
>>389
概ね、そんなかんじかと。

PIE <=. Sakuraは120msぐらいかかるみたいなので、250msぐらいはかかるですね。

%ping be.2ch.net
PING be.2ch.net (202.222.31.214): 56 data bytes
64 bytes from 202.222.31.214: icmp_seq=0 ttl=47 time=119.828 ms
64 bytes from 202.222.31.214: icmp_seq=1 ttl=47 time=123.794 ms
64 bytes from 202.222.31.214: icmp_seq=2 ttl=47 time=120.057 ms
64 bytes from 202.222.31.214: icmp_seq=3 ttl=47 time=122.132 ms
64 bytes from 202.222.31.214: icmp_seq=4 ttl=47 time=120.747 ms
^C
--- be.2ch.net ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 119.828/121.312/123.794/1.478 ms
393未承諾酩酊※ ◆TWARamEjuA
垢版 |
04/12/30 02:56:05ID:+U2vszG5
>>389
おそらくビンゴー♪
>>391
ですです(嬉)
394root▲ ★
垢版 |
04/12/30 02:56:37ID:???
>>390
…ですね。

ふろ入ってくるです。東京、さむさむ。
395FOX ★
垢版 |
04/12/30 02:57:29ID:???
こっちは最高気温が-5℃とかだったり
雪祭りシーズン並
396root▲ ★
垢版 |
04/12/30 02:57:48ID:???
>>392
あ、RTTだから単純に倍するのはへんだ、、、。
04/12/30 02:59:53ID:tK0pClhz
connect()失敗した後にファイルディスクリプタ解放してないのか・・・
まぁひとごとだし、いいけど。
398root▲ ★
垢版 |
04/12/30 03:01:28ID:???
>>397
うむ。
SpeedyCGIだと、こういうのも響いてくる予感。

つまり、どなたかのいう「静脈系」をちゃんとできるひとじゃないと、
いじった場合、よりいっそういけないことになると。

ふろー。
399ひろゆき@どうやら管理人 ★
垢版 |
04/12/30 03:02:25ID:???
素直にLWPつかいますかー。
04/12/30 03:03:00ID:fcdZGLxI
yamete
04/12/30 03:03:49ID:???
サンプルもって来る出巣
402FOX ★
垢版 |
04/12/30 03:08:32ID:???
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Status;

my $ua = LWP::UserAgent->new();
$ua->agent ("Iyan Bakan ver 1.00");
$ua->from ("security\@2ch.net");
$ua->proxy("http", "http://$proxy/") ;#proxyさすなら
$ua->timeout(15);
$header = HTTP::Headers->new(
'Referer' => "http://www.2ch.net/",
);
my $parameter= "abc=123&def=456";
my $request = HTTP::Request->new("POST", "http://be.2ch.net/nantara.cgi", $header, $parameter);
my $response = $ua->request($request) ;#ここで GET 処理
#ここでtimeout処理
my $response_code = $response->code();#302とか404とか500
my $response_body = $response->content();#GETの結果はここに入っている
403FOX ★
垢版 |
04/12/30 03:11:09ID:???
たぶん 7行より短くなるはず、
404ひろゆき@どうやら管理人 ★
垢版 |
04/12/30 03:15:49ID:???
試してみようと、LWPをCPANから拾おうとしたら、
ftp.perl.orgが落ちてる。。
405未承諾酩酊※ ◆TWARamEjuA
垢版 |
04/12/30 03:26:29ID:+U2vszG5
>>402
use をLWP::UserAgentだけにしてみるトステ

use LWP::UserAgent;
my $ua = LWP::UserAgent->new(
 'agent' => "Iyan Bakan ver 1.00",
 'from' => "security\@2ch.net",
 'timeout' => 15,
);
# $ua->proxy('http', "http://$proxy/") ;#proxyさすなら

$ua->default_header(
 'Referer' => 'http://www.2ch.net/',
);

my $response = $ua->post(
 "http://be.2ch.net/nantara.cgi",
 \{
  'abc' => 123,
  'def' => 456,
 }
);

$response = $response->is_success
 ? $response->content # 成功した時は内容を取り込む
 : $response->status_line # 失敗した時はそのレスポンスとエラー内容を取り込む
;
406未承諾酩酊※ ◆TWARamEjuA
垢版 |
04/12/30 03:29:04ID:+U2vszG5
>>404
%perl -MCPAN -e shell
してから、
cpan> install LWP
すると、依存関係類もまとめてインストロールしてくれはるです♪
407(_ `
垢版 |
04/12/30 03:31:47ID:g+ta55qi
(Д ` ≡ ´ д) (。`?  ..。。(( ´ _)
04/12/30 03:38:32ID:tK0pClhz
Classまで使ってそんなにシビアなコード書きたいなら静脈系自動処理してくれるJava系の方が向いていそう。
その代償にGlobalGC時の硬直があるがJavaVMのParameterを経験則で調整していけばなんとかなる。
完全インタプリタなPerlよりバイトコードに落とすJavaの方が単純なルーチンなら刹那的な速度的にも最大二桁倍の速度向上が見込める。
SystemCallにおいては微妙ではあるが。でもやっぱり過去の資産の総リプレースは怖いのかな。

と言ってみるテスツ。
409ひろゆき@どうやら管理人 ★
垢版 |
04/12/30 03:42:23ID:???
怒られました。
***
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
live/jigsaw-auth-b.t 3 2 66.67% 1 3
live/jigsaw-auth-d.t 1 1 100.00% 1
live/jigsaw-md5-get.t 2 2 100.00% 1-2
live/jigsaw-neg-get.t 1 1 100.00% 1
live/jigsaw-te.t 4 1 25.00% 4
Failed 5/41 test scripts, 87.80% okay. 7/788 subtests failed, 99.11% okay.
*** Error code 2

Stop in /root/.cpan/build/libwww-perl-5.803.
/usr/bin/make test -- NOT OK
Running make install
make test had returned bad status, won't install without force
04/12/30 03:43:01ID:+U2vszG5
>>404
あっと、どうしてもソースコードがご入り用でしたら、
http://search.cpan.org/~gaas/libwww-perl-5.803/
からダウソできるですよー

※あらやだ今日は呑んでいないのに酩酊のママだったorz...
411root▲ ★
垢版 |
04/12/30 03:43:56ID:???
>>404
LWP、2chの環境には入れてあったような。
あ、直轄サーバで試すのかな。

# FreeBSDならCPANから拾うより、pkg_add -r で入れるほうが楽です。
04/12/30 03:52:49ID:+U2vszG5
>>409
ぬー、、、jigsaw.w3.org が墜ちているもより(滂沱)@なのでtest出来ずに鰓。。。
rootさん曰く、
→# FreeBSDならCPANから拾うより、pkg_add -r で入れるほうが楽です。
かもですm(_ _)m
413root▲ ★
垢版 |
04/12/30 03:54:45ID:???
>>409
FreeBSDなら、これで一発かと。

pkg_add -r p5-libwww
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況