[過去ログ] bbs.cgi 再開発プロジェクト (1001レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
242: 名無しさん@お腹いっぱい。 03/05/20 03:21 ID:CcL135Kb(1) AAS
アルゴリズム的には、2分探索ってのは
データを順番に並べておいて
真ん中と比較してどちら側にあるかを判定し
さらにその真ん中と比較して・・・を繰り返すだけ。
で、今回の場合は、リモホの部分一致じゃなくて末尾一致でいいから
規制リストを末尾の文字から代償を比較して、順番に並べておこうと。
IPアドレスも混じっているなら
逆引きできないアドレスも全部文字列にしてから比較するか
ファイルを分けるのがよろしいかと。
243(1): 名無しさん@お腹いっぱい。 03/05/20 03:27 ID:siFXTzp9(1/3) AAS
リモホチェックにパスしたら昔テストしてたSPIDみたいなCookieを食わせて
以後ある程度の期間はCookieのチェックだけで済ませちゃいかんの?
244(1): ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 03/05/20 03:31 ID:??? AAS
いやぁ、、それを実装するはずだったんですが、
時間がたってしまいました、、、>>243
245: 名無しさん@お腹いっぱい。 03/05/20 03:37 ID:siFXTzp9(2/3) AAS
>>244
( ´ー`)y-~~~
246: 名無しさん@お腹いっぱい。 03/05/20 03:37 ID:FthSt6oi(6/10) AAS
で?>>232 >>235 のバークレーDB路線はどうなの?
DB_File使えばO(1)だな
って
247: 名無しさん@お腹いっぱい。 03/05/20 03:37 ID:FthSt6oi(7/10) AAS
手がすべた、、で、どうなの?
248: ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 03/05/20 03:38 ID:??? AAS
DBでの実装も試験してみますかぁ、、
249: あぼーん [あぼーん] あぼーん AAS
あぼーん
250: Albert ◆0oQ5UKYDHU [discovered2000@yahoo.co.jp] 03/05/20 03:47 ID:X6vfP9Cg(1) AAS
>>248職人様方の邪魔をしてしまいました。
本当にすみませんでした。
251: 名無しさん@お腹いっぱい。 03/05/20 03:49 ID:FthSt6oi(8/10) AAS
>でも、友達は後で泣きながら「なんでHPの作り方なんか教えたの?○○(私の名前)のせいじゃん!
>と言ってきて、絶交状態です。
>2ちゃんねらーは、私たちの友情も引き裂きました!
ワラタ
252: 名無しさん@お腹いっぱい。 03/05/20 03:52 ID:siFXTzp9(3/3) AAS
近頃は自動謝罪カキコ機能の付いたスクリプトがあるの?
253(1): 228 03/05/20 04:33 ID:vZDlrKy4(6/6) AAS
>>230-231の改良版。
mkdb.plがデータベース作成用、bsearch.plが検索用。
外部リンク[tgz]:www.geocities.co.jp
>>238
proxy_listに
example.com
192.168
とあれば、www.example.com とか 192.168.3.5
を引っ掛けるように作ってます。
IPアドレスとホスト名でマッチングの仕方を変えてます。
省3
254: 241 03/05/20 04:43 ID:FthSt6oi(9/10) AAS
>>238
やべ。。てっきり比較してるのIPの一部とかだと思ったら。。
混乱させて正直スマンカッタ
255(2): 232 03/05/20 11:37 ID:2BSs0sVK(2/3) AAS
>>232 はIPアドレスのときネットワークアドレスの頭から削って
比較することになってしまい、仕様的にマズイのでちょっと訂正。
それに.com規制とか考えると$lim=0にしないといけない。
んで、それらを解決したものでテストしてみた。
外部リンク[tgz]:www.geocities.co.jp
結果から言うと、
HASHを作るのに単にファイル読むだけより倍以上時間がかかってる。
試しにDB_Fileもやってみた。
なんか惨憺たる結果。
こーぢんぐが悪いかも。
256(1): 名無しさん@お腹いっぱい。 03/05/20 12:51 ID:itSoBR7s(1/5) AAS
static void update_db(const char *proxy, const char *db)
{
FILE *src = fopen(proxy, "r");
FILE *dst = fopen(db, "w+");
char line[IP_LENGTH + 1];
char **list = NULL;
int i, list_length = 0;
while (fgets(line, IP_LENGTH, src) != NULL) {
char *reverse = (char *) malloc(IP_LENGTH);
int length = strlen(line);
省29
257(2): 名無しさん@お腹いっぱい。 03/05/20 12:52 ID:itSoBR7s(2/5) AAS
static int search_ip(const char *ip)
{
FILE *fp;
char line[IP_LENGTH];
char reverse[IP_LENGTH];
int min, max, length = strlen(ip);
update_db_if_need(PROXY_FILE, PROXY_FILE_DB);
fp = fopen(PROXY_FILE_DB, "r");
strreverse(reverse, ip);
fseek(fp, 0, SEEK_END);
省31
258(1): 名無しさん@お腹いっぱい。 03/05/20 12:56 ID:itSoBR7s(3/5) AAS
先頭が書き込めてなかった(´・ω・`)ショボーン
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#definePROXY_FILE"./proxy_list"
#definePROXY_FILE_DB"./proxy_list.bsort"
省20
259: 名無しさん@お腹いっぱい。 03/05/20 12:59 ID:itSoBR7s(4/5) AAS
#define の所のタブの空白が消えてやがる
260(3): ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 03/05/20 13:56 ID:??? AAS
IPアドレスを逆さにしたりする作業がありますけど、
IPアドレスやドメイン名がすでに逆さになってるリストがあるという前提
だとkisei | 33.79 33.82 33.72 33.78ってことですか?
>>255
おぉ、、Cだ、、、
DBを作るほうはなんとなくわかるんですが、
検索のほうのアルゴリズムがよくわかりません。。。
261: rafale ★ 03/05/20 14:03 ID:??? AAS
>>260
見た感じだとIPv4だったらkisei.pl内で逆さにしてるっぽいですが…
上下前次1-新書関写板覧索設栞歴
あと 740 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.014s