X



トップページ運用情報
1001コメント264KB
bby -- スレッド情報一元管理システム構築スレ
■ このスレッドは過去ログ倉庫に格納されています
0102FOX ★
垢版 |
04/01/30 19:41ID:???
でけた


%nslookup -type=txt txttest.uma.2ch.net
Server: localhost
Address: 127.0.0.1

Non-authoritative answer:
txttest.uma.2ch.net text = "TXTレコードのテスト"
0105root ★
垢版 |
04/01/30 19:44ID:???
で、心としては、

bbs.cgiからTXTレコードのデータとして、今A(gethostbynameしているもの)に、
スレタイも加えた上で、bbyに投げる

これができれば、TXTレコードはより自由度大きい(制限が64バイトじゃないし)んで、
より楽なんじゃないかと。

>>92
できるですね。Puttyさんが日本語いまいちかコード間違ってるかに1票。

%nslookup -type=txt txttest.uma.2ch.net
Server: localhost
Address: 127.0.0.1

Non-authoritative answer:
txttest.uma.2ch.net text = "TXTレコードのテスト"
01062chtubo愛用者〜ヘ(゚д゚ヘ))))))〜61 ◆2CHTUBOC5A
垢版 |
04/01/30 19:44ID:ayRj2GQn
http://webtool.2ch-tool.net/bby.php

早速活用してみたが、使っちゃっていいのかな?
0109root ★
垢版 |
04/01/30 19:47ID:???
>>102
お。

というわけで、PerlからTXTレコードを投げられればいいわけですが、、、。
Net::DNSとか使えるといいんだけど、HE標準環境では使えないと昔言われた気がする。
01102chtubo+gikonavi愛用者
垢版 |
04/01/30 19:48ID:5b3oc1mS
壷からのお知らせで来てみますた

記念カキコc⌒っ゚Д゚)φ
0111FOX ★
垢版 |
04/01/30 19:50ID:???
そうか、
ということは まずbbs.cgi 側の改造が必要ですよね。

どのように改造すればいいのでしょ

現在のコード (Perl)

my $AHOST = "$NEWTHREAD.$FORM{'bbs'}.$ENV{'SERVER_NAME'}.bby.2ch.net";
my $SPAM = gethostbyname($AHOST);

どうせなら、スレタイ・投稿者・メール欄等も全部載せておくとか、

0112GlobalService ◆dqe3yfz9ac
垢版 |
04/01/30 19:50ID:8PgVhIwU
かちゅ〜しゃ+かげだから意味無いよ

うわぁ〜ん
0113FOX ★
垢版 |
04/01/30 19:51ID:???
>>109
まずは uma だけでもやってみようと、
0114動け動けウゴウゴ2ちゃんねる
垢版 |
04/01/30 19:53ID:nQ6TLJnL
>>111
>スレタイ・投稿者・メール欄
まで載せるのなら、内容まで載せれば、
クライアント側(利用者)で該当スレの1を取得する必要がなくなるかも。
ログの規模によりますが。
0115root ★
垢版 |
04/01/30 19:54ID:???
と思ったけど、TXTでも64文字制限だったりするのかな。< . までの文字数
ちょっと、RFCあたってみないと。
0116FOX ★
垢版 |
04/01/30 19:54ID:???
おおっ 確かに、
0118動け動けウゴウゴ2ちゃんねる
垢版 |
04/01/30 19:54ID:p9w+Zuap
壷記念♪ ホント2ゲトし放題ですね。
つーか、スレッドって祭スレ位の勢いで立ってるんですねぇ・・
たまげたわ ゴミ吸いません
0119動け動けウゴウゴ2ちゃんねる
垢版 |
04/01/30 19:55ID:NJlvzoG3
tuboから記念パピコ

何を言ってるのか全くワカランけどねヽ(´―`)ノ
0120root ★
垢版 |
04/01/30 19:57ID:???
もし64文字制限だとすると、TXT使う意味ないなぁ。
普通にA(gethostbyname)でいい気がする。

質問1: スレタイって、一般的に何文字(バイト)まででしたっけ。
質問2: 思い切って「最初の63文字まで」にしちゃっても、うれしいのかしら。
0123root ★
垢版 |
04/01/30 20:00ID:???
「スレタイのはじめの63バイトまで」と見切るんだったら、今のに簡単に乗せられます。
そうじゃない場合、ちょっとめんどいかな。
0124root ★
垢版 |
04/01/30 20:00ID:???
>>122
そうだよね。128に変えたりした記憶あるし。
0127root ★
垢版 |
04/01/30 20:02ID:???
>>125
んとね、たぶん利ゾルバライブラリ側でエラーになると思う。つまりDNSパケットが飛ばない。
0130root ★
垢版 |
04/01/30 20:06ID:???
最初の63文字と見切るなら、>>111 で飛ぶ結果を、

1075460625.mmosaloon.game3.2ch.net.bby.2ch.net

から、

1075460625.スレタイの最初の63文字.game3.2ch.net.bby.2ch.net

になるようにすればいいだけだと思われ。
こうすれば、umaサーバ以外でも使えるはず。

ただし、「スレタイの最初の63文字」を作るところで、\ 文字に注意する必要ありかな。
このへんは、Perlというか、bbs.cgiのつくりの仕様かと。

で、えりも側では、漢字が半分でちょん切れてる時の対応をまじめにやる必要ありかと。
0132root ★
垢版 |
04/01/30 20:08ID:???
で、64文字以上の場合は、例えば

1075460625.63文字.63文字.game3.2ch.net.bby.2ch.net

とか、することになるわけですが、これだといろんな意味でちょいと面倒かも。
0133root ★
垢版 |
04/01/30 20:09ID:???
あと、ピリオドそのもの もスレタイに入るんで(DNS的にはそのまま送ればOKです)、
えりも側ではちょいと注意が必要な気がするな、と。

これから仕事落ち。
0134GlobalService ◆dqe3yfz9ac
垢版 |
04/01/30 20:10ID:8PgVhIwU
>>130
見切りはしない方がいいよ
全角・半角混じりの場合に次の1バイトを巻き込んで・・・

01352chtubo愛用者〜ヘ(゚д゚ヘ))))))〜61 ◆2CHTUBOC5A
垢版 |
04/01/30 20:53ID:ayRj2GQn
erimoの保存件数を100件にしてほしかったり、、、
01382chtubo愛用者〜ヘ(゚д゚ヘ))))))〜61 ◆2CHTUBOC5A
垢版 |
04/01/30 20:59ID:ayRj2GQn
>>136
約1分ですね。@cronでやってるんで
0139FOX ★
垢版 |
04/01/30 20:59ID:???
100件にしてみよう。
テストだから最終的に何件にするかとかは先送り。
01402chtubo愛用者〜ヘ(゚д゚ヘ))))))〜61 ◆2CHTUBOC5A
垢版 |
04/01/30 21:05ID:ayRj2GQn
>>139
ありがたやありがたや。
01422chtubo愛用者〜ヘ(゚д゚ヘ))))))〜61 ◆2CHTUBOC5A
垢版 |
04/01/30 21:15ID:ayRj2GQn
ちなみに、みなさんがアクセスするだけでも更新されますw
0145◆HETAREzfq.
垢版 |
04/01/30 22:11ID:CTtSEKPO
最終更新順=最終書き込みが新しい順 で情報取得になれば、subback合成も可能になるだろーなぁ。
0146外野ァァン
垢版 |
04/01/30 22:14ID:+Tx2+mnW
開発途中のものを壷で投げかけるなと小一時間
01492chtubo愛用者〜ヘ(゚д゚ヘ))))))〜61 ◆2CHTUBOC5A
垢版 |
04/01/30 23:10ID:ayRj2GQn
しかし、重大な欠陥が、、、

アクセスし続けないとログが記録されない、という。
0150a3jio
垢版 |
04/01/30 23:11ID:PpNDRrhv
age

0155◆Kvwt/4FxR2
垢版 |
04/01/31 12:36ID:89/K8ebU
>>11-12以外でこのシステムを
有効利用できることは無いのかなぁ。

いや、2get支援システムとは言うのは無しとして。
0158FOX ★
垢版 |
04/01/31 13:31ID:???
>>157
どんどん具体的な案だすべし、

可能なら私が組むし、むりぽだったら
誰か組んでくれるゾ
0159通りすがりの名無しさん
垢版 |
04/01/31 14:55ID:Z8hHLn18
結局、bbyは重くなるのならないの。
今後そういう使われ方していって重くなるのならないの。
推測でいいから誰か結論出してよ。

それと、この手の情報はスレを立てようとしてる香具師に
何らかの形で知らせた方が効果ある訳で
そうでなければ管理側のオナヌーだろな。
0160FOX ★
垢版 |
04/01/31 15:06ID:???
BBY が重くなればなるほど
その数倍から数十倍の勢いで通常のサーバが軽くなる。

重く多なったらBBYを増やせば よいだけ、
0161FOX ★
垢版 |
04/01/31 16:17ID:???
さてさて、スレ鯛とかを持ってきますかねぇ


ここで質問です。
今作っているこのプログラム(以下tsugaru)は
2ちゃんねるの各サーバのbbs.cgiが新スレたった時に呼ばれるわけです
このとき DNS を引く手法で BBY が呼ばれます。
この時に bbs.cgi とは完全にシンメトリーなんでしょうか?

投稿
 ↓
新スレたった(bbs.cgi) → BBY → tsugaru
                        ↓
                       いろいろ処理
                        ↓
新スレたった(bbs.cgi) ← BBY ← tsugaru
 ↓
そのあとの処理
実際に書き込み
0162root ★
垢版 |
04/01/31 16:23ID:???
>>161
これは、BBY側でバッファリングとかされてたりしない? という意味ですね。
つまり、待たせることなくtsugaruが呼ばれているのかどうかと。
0163FOX ★
垢版 |
04/01/31 16:25ID:???
どちらかと言えば
trugaru は BBY が呼んだら放置で
さっさとbbs.cgi 側に復帰してくれることを期待しています
0165root ★
垢版 |
04/01/31 16:53ID:???
そういうことですか。

それなら、そもそもそうなってますです。
つまり、tsugaru処理によってBBY(DNS側)がブロックされることはないです。

で、>>161 の絵ですが、今こんなかんじかと。

投稿
 ↓
新スレたった(bbs.cgi)
gethostbyname() → BBY → tsugaru → いろいろ処理
 ↓
BBYからの結果は無視して
以降の処理へ
0166FOX ★
垢版 |
04/01/31 16:55ID:???
>>165
りょうかいですー

のびのびやれるぞー
0167root ★
垢版 |
04/01/31 17:01ID:???
ただし、BBY用のDNSサーバがこけると、
gethostbyname()からの結果を待ってしまうので、ブロックします。

春ぐらいに、PIEにもDNSサーバ(こいつはOpteronじゃなくて、手堅いやつ希望)が
必要になりそうな予感。
0170削除屋@悪魔のZ ★
垢版 |
04/01/31 22:48ID:???
皆様お疲れ様です。

いまさらかもしれませんが・・・。

>>127
(>>43を書いたとき)実験したら、DNS呼び出しでエラーになってパケット飛ばなかったです。
64byte以上のホスト名や、使用禁止文字があった場合も同様でした。
(perlが死ぬことは無かったと思います。)

>>133
ピリオドの他にも使用禁止文字は無いでしょうか?
スペースなどはどうでしょう?
それと、ピリオドの連続(0文字のホスト名)は禁止らしく、
(確か)呼び出しに失敗した記憶があります。
01732chtubo愛用者〜ヘ(゚д゚ヘ))))))〜61 ◆2CHTUBOC5A
垢版 |
04/02/01 11:21ID:dwh0EDMA
http://webtool.2ch-tool.net/bby2.php

待ちきれないのでニュース関係だけだが作ってみた。
01752chtubo愛用者〜ヘ(゚д゚ヘ))))))〜61 ◆2CHTUBOC5A
垢版 |
04/02/01 11:53ID:dwh0EDMA
だってーw
0179動け動けウゴウゴ2ちゃんねる
垢版 |
04/02/01 21:31ID:vkes70jo
>>173
すげ〜イイ!!

ただ、今回の閉鎖騒動を見てふと思ったんだけど、このbbyを拡張して、2chだけでなく色んな
ニュース系BBSのスレをヘッドライン的に出してくれるサイト作んないかな?

サーバーや開設者や運営陣は別々に分散してて、システムの一部の仕様はヘッドラインに乗せるため
共通で。BBS共同体みたいなの・・・
0180FOX ★
垢版 |
04/02/01 21:32ID:???
>>179
記者さんがスレ立てると自ずと・・・
0183動け動けウゴウゴ2ちゃんねる
垢版 |
04/02/01 21:42ID:vkes70jo
>>180
>>181
なるほど・・・
ただ2chだけだと、今は管理人の方は一人なので、何らかの理由で閉鎖とかなっちゃうともったいない
なーと思ったので。管理者の責任とか負荷とかをもっと分散できてる状態で、かつ、利用者が便利な
状態が望ましいのかなぁ〜と思いました。
ただの世迷言ですw
0186けんすう ★
垢版 |
04/02/01 21:51ID:???
>>184
あれ、おいらはいけるんだけどなぁ、、

>>183
ある程度の責任を負える人ってのが
実はほとんどいないと思うのですね。
0187動け動けウゴウゴ2ちゃんねる
垢版 |
04/02/01 21:59ID:vkes70jo
>>186
失礼。こっちの回線の問題だったようです。
そうですね。ある程度以上の規模があると責任は重いですからね。
といって、ちいさなBBSでニュースだとそれだけでは何の魅力もないでしょうし・・・
あくまで世迷言ですので・・・w
0189FOX ★
垢版 |
04/02/02 14:08ID:???
tsugaru は C で書いてるんだけど

DNS的手法を使ったスレタイ等の取得は形勢不利と決め付けて
各サーバにdat取りに行くことにしよっかな、

んで C でhttp使って別のサーバにdatを取りに行くのはどうやって
やるんで? 教えてエロい人。
0191root ★
垢版 |
04/02/02 14:13ID:???
>>189
普通にsocket/bind/connectすればいいわけですが、
なんだか「負け」な気がするなぁ。
0192root ★
垢版 |
04/02/02 14:14ID:???
ごめん。bindはしなくていいすね。
0193動け動けウゴウゴ2ちゃんねる
垢版 |
04/02/02 14:22ID:CHwmuU2R
DNS以外を使うなら、新スレ通知の段階からDNS以外で
まとめてやった方が効率良かったりしない?
bbs.cgiが、URL・タイトル・投稿者名等をbbyにhttpでPOSTするとかさ。

DNSを全くつかわないなら bb* ではなくなってしまうわけだが。
0194FOX ★
垢版 |
04/02/02 14:23ID:???
誰かサブルーチン書いてちょ

int BBYgetDat(char *dat1line,char *server,char *ita,char *key)
{
/* http://server.2ch.net/ita/dat/key.dat を取ってくる */
/* char *dat1line に一行目の生データを格納 */
/* strcpy(dat1line, xxxxx); ってな感じ dat1line は上で十分な長さが確保されている */

return 0; /* だめだった */
return 1; /* うまく行った */
}
0195FOX ★
垢版 |
04/02/02 14:24ID:???
>>193
最終目標を失っちゃったら面白くないでしょ。
0196動け動けウゴウゴ2ちゃんねる
垢版 |
04/02/02 14:32ID:CHwmuU2R
ちょっと遠出して高級羊羹を買ってくるつもりが、途中で
つい買い食いしてしまった安物羊羹でなんだか満足、
ってな事にならなければいいけどね。
0197某ソレ511
垢版 |
04/02/02 16:35ID:kSqzqkXH
うちのcygwinではこんなソースで動いた。

int BBYgetDat(char *dat1line,char *server,char *ita,char *key)
{
FILE * fp;
int fd;
int ret;
struct hostent * hp;
struct sockaddr_in a;
short port = 80;
char * databuffer = malloc(2048);
char * buffer = malloc(96);
char * server0 = malloc(64);

//declaration
if (-1 == (fd = socket(AF_INET, SOCK_STREAM, 0))) return 0;
/* get server address */
strcpy(server0,server);
if (0 == (hp = gethostbyname(strcat(server0,".2ch.net")))) return 0;
/* connect to server */
a.sin_family = AF_INET;
a.sin_addr.s_addr = *((unsigned long *)hp->h_addr);
a.sin_port = htons(port);
if (-1 == connect(fd, (struct sockaddr *)&a, sizeof(a))) return 0;

if(NULL == (fp = fdopen(fd, "r+"))) return 0;
fprintf(fp, "GET /%s/dat/%s.dat HTTP/1.1\n", ita, key);
fprintf(fp, "Host: %s:%d\n\n", server0, port);
//dat1line = malloc(2048);
while(1) {
if (fgets(buffer, 64, fp) == NULL) break;
else if(strcmp(buffer,"\r\n") == 0){
while(1) {
if (fgets(buffer, 64, fp) == NULL) break;
if(strcmp((buffer+strlen(buffer)-1),"\n") == 0){
strncat(databuffer,buffer,strlen(buffer)-1);
break;
}else{
strcat(databuffer,buffer);
}
}
break;
}
}

strcpy(dat1line, databuffer);
close(fd);
close(fp);
return 1;
}

ただ、もしかしたら改行コードの関係で
else if(strcmp(buffer,"\r\n") == 0){ の行を
else if(strcmp(buffer,"\n") == 0){ にしないとだめかも。
0198某ソレ511
垢版 |
04/02/02 16:36ID:kSqzqkXH
あ、おもいっきしdatファイルがないときの
処理とか書いてないし、、
ま、いっか。
0199z
垢版 |
04/02/02 17:07ID:I2QUXt1H
>>189
>DNS的手法を使ったスレタイ等の取得は形勢不利と決め付けて

なぜこのように思われたのでしょうか?

エンコードとか分割などの方法があると思うのですが。
0200FOX ★
垢版 |
04/02/02 17:29ID:???
>>199
ほぅほぅ
どうやるんですか?

( ̄ー ̄)ニヤリッ
■ このスレッドは過去ログ倉庫に格納されています

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