*毒電波をUDPで送信するとか。(編集中) [#fc2fcebc]

**想定条件 [#q68b3ee7]
-アクセスが多いサイト((ゴーストセンター、GhostTown、Disk2といったポータルサイトが該当するんではなかろうか。))で毒電波を送信したいといったケースで効果がありそう。

**メリット [#fd72ae20]
-レスポンスをSSTPクライアント((SSTPの場合クライアント=毒電波発生装置、サーバー=ベースウェア))に返さなくて良い。
-ファイヤウォールその他の理由でポートをふさがれていてもSSTPクライアントは知ったこっちゃない。
-↑より、SSTPサーバーが起動してない状態でSSTPクライアントを実行しても問題ない。((TCPだと応答待ちになるよね。))
-SSTPクライアントの負荷が減る。
-SSTPクライアントプログラムはプロセス終了とか面倒なことを考えなくてもよい。

**デメリット [#kf414c4e]
-UDPなのでSSTPサーバーに電波が届いているかどうか知ったこっちゃない。(ぉぃ
-SSTPサーバーがレスポンスを返さない為、Send1.2 Send1.3やExecute Get〜といった処理が全滅する。
-SSTPサーバーがレスポンスを返さない為、Send1.2 Send1.3やExecute Get~といった処理が全滅する。
-ベースウェアの対応((ssp、crow、しか対応してくれないんじゃないだろうか。偽林檎ですら怪しいかも。))
-毒電波自体が一般的に使われていないので必要とされてない。((それ以前に違いを理解して使いわけできるかどうか・・・。))

**ソース(Perl) [#rc1939c5]
sub send_sstp{#UDP毒電波〜~
sub send_sstp{#UDP毒電波~~
        use Socket;~
        my($sender,$script) = @_;~
~
        my $sstp_port =9801;~
~
        my $addr=$ENV{'HTTP_X_FORWARDED_FOR'};~
        if ($addr eq "") { $addr = $ENV{'REMOTE_ADDR'}; }~
        my $proto = getprotobyname(COLOR(crimson){'udp'})((此処をudpにすればudpに成る筈?));~
        socket(S, PF_INET, SOCK_STREAM, $proto);~
        my $ent = sockaddr_in($sstp_port, inet_aton($addr));~
        connect(S, $ent);~
        eval{alarm("2");};~
        select(S);~
        $| = 1;~
        select(STDOUT);~
~
        print S "SEND SSTP/X.X\r\n";((ここでudp用の新しいヘッダタイプを作るなりパラメーターを追加するなり?))~
        print S "Charset: Shift_JIS\r\n";~
        print S "Sender: $sender\r\n";~
        print S "Script: $script\\e\r\n";~
        close(S);
~
        return(undef);((UDPなので返り値は無し))~
}

***参考 普通の毒電波 [#y98e8056]
sub send_sstp{#毒電波〜~
sub send_sstp{#毒電波~~
        use Socket;~
        my($sender,$script) = @_;~
~
        my $sstp_port =9801;~
~
        my $result;~
        my $addr=$ENV{'HTTP_X_FORWARDED_FOR'};~
        if ($addr eq "") { $addr = $ENV{'REMOTE_ADDR'}; }~
        my $proto = getprotobyname(COLOR(crimson){'tcp'});~
        socket(S, PF_INET, SOCK_STREAM, $proto);~
        my $ent = sockaddr_in($sstp_port, inet_aton($addr));~
        connect(S, $ent);~
        eval{alarm("2");};~
        select(S);~
        $| = 1;~
        select(STDOUT);~
        print S "SEND SSTP/1.1\r\n";~
        print S "Charset: Shift_JIS\r\n";~
        print S "Sender: $sender\r\n";~
        print S "Script: $script\\e\r\n";~
        COLOR(crimson){while (<S>){$result .= $_;&#x7d;;}
((此処がUDPとTCPの最大の違い。返事が返ってくるかどうかやね。))~
        close(S);~
        return($result);~
}~

*コメント [#f62e0b05]
-まぁ、実装されたとして使うかすら不明の与太話。 -- [[Aoe]] &new{2005-03-18 (金) 12:30:56};

#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS