68user's page 掲示板

Prev< No. 4219〜4224> Next  [最新発言に戻る] [過去ログ一覧]
No. 4219 # Netboy 2005/08/02 (火) 18:51:38
>>4218 seki
横からすみません.
ftpのポート21でconnectできるかチェックするPerlスクリプトを
書いてみました.試していただけますか?

use Socket;

$SIG{'ALRM'} = sub { close(SOCK); $sTimeout='(timeout)'; };

# ConnectTest(IPアドレス,ポート,タイムアウト秒数)

if (!&ConnectTest('192.168.x.x',21,5)){
    print "cannot make a ftp connection.\n";
    exit;
}

# 正常ならばftpコマンドを実行
system ('ftp hogehoge');

exit;

sub ConnectTest
{
    local($sIP,$nPort,$nTimeout)=@_;
    local($iaddr,$paddr,$flag,$protoTCP,$sTimeout);

    $iaddr = inet_aton($sIP) || die "no host: $sIP";
    $protoTCP = getprotobyname('tcp');

    $paddr = sockaddr_in($nPort, $iaddr);
    $flag=socket(SOCK, PF_INET, SOCK_STREAM, $protoTCP);

    if (!$flag){ goto J1_1; }

    $flag=0;$sTimeout='';

    eval {
        alarm($nTimeout);
        $flag=connect(SOCK, $paddr);
        alarm(0);
    };

    if (!$flag){ goto J1_1; }
    if ($sTimeout){ goto J1_1; }

    close (SOCK);
    return 1;
J1_1:
    close (SOCK);
    return 0;
}

No. 4220 # 68user 2005/08/02 (火) 21:19:51
>>4218 seki
> ftpのソースコードなどは開示されていないのでしょうか??
Solaris8 のソースは配られていたかどうかは忘れましたが、いずれにせよ
ソース中には 4分という記載はありません (見てませんが)。connect(2) の
タイムアウトを決めるのはカーネルの仕事です。

で、
    http://www.kt.rim.or.jp/~ksk/sock-faq/unix-socket-faq-ja-3.html#ss3.5
によると、
    # ndd -set /dev/tcp tcp_ip_abort_cinterval 180000
で変更可能なようです。

> APLに手を入れる事なく設定変更で済ませれるのであれば済ませたいです
プログラムに手を入れるよりもカーネルの設定を変える方がよいというのは
間違った判断だと思います。

まぁ客や上司の意向とか、ソース触ったら契約がどうこうとか、世の中には
うっとうしいことがいろいろあるので別にいいですが。

>>4219 Netboy
ウチの環境では動きました。

No. 4221 # 68user 2005/08/03 (水) 23:28:20
usen-221x242x135x85.ap-US01.usen.ad.jp (221.242.135.85) の方、
    /~68user/net/sample/http-auth/secret.html
に 21分間で 25万回アクセスするのは、ぜひともやめていただきたい。

って言っても、どうせ見てないんだろうし、deny したところでおそらく動的に
IP アドレスを振ってるだろうし、こういう輩はどうしたらいいんですかねぇ。

No. 4222 # へにか [URL] 2005/08/06 (土) 03:07:46
>>4221 68user
いや、もう、それは管理部門に連絡するのが良いでしょう。
満足いく内容かどうかはともかく、大抵は何らかの返答はありますよ。

#釈迦に説法のような気がしてなりませんが。

No. 4223 # 68user 2005/08/06 (土) 04:18:05
>>4222 へにか
なるほど、そういうものですか。usen ならここらへんでしょうか。
    http://www.fttx.co.jp/jp/contact/abuse.html

ただ、マシンが落ちるなどの実害はなかったことと、usen の web によると
実名を書けだの、仲介しかしないだの、めんどくさそうなので今回は
放置します。

ちなみに「どうしたらいいのか」というのは技術的な解決方法はないですかねぇ、
という意味でした。たとえば一定時間に指定の閾値を超えた IP アドレスは deny
するような apache のモジュールがどこかにありそうですよね。

というわけで探したらありました。
    http://www.netnice.org/pukiwiki.php?%B4%FB%C2%B8%A4%CEApache%A5%C8%A5%E9%A5%D5%A5%A3%A5%C3%A5%AF%C0%A9%B8%E6%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB

まぁほんとにしつこくやってくるようなら usen ごと deny するので
別にいいんですけどね。

No. 4224 # へにか 2005/08/06 (土) 05:58:59
あぁ、技術的な話でしたか。
それに似た話は、某掲示板群で話題になってますね。
http://qb5.2ch.net/operate/kako/1113/11135/1113508190.html
http://qb5.2ch.net/test/read.cgi/operate/1113647422/
しつこいクローラー&過剰リロード対策についての議論です。ご参考までに。

因みに、他の業者に対しては本名を名乗ったことはありません(へにかのまま)。
usenも変な話で、被害をこうむったほうの名前は聞くけど、被害を出したほうの
名前は出さないっていうことですよね? その辺を突っついてみると、なんらか
の回答が出るかもしれません。・・・が、放置されるとの事ですので、補足意見
とさせてください。

Prev< No. 4219〜4224> Next  [最新発言に戻る] [過去ログ一覧]