*毒電波をびびび [#za0fcd9f]
自分のWebサイトから毒電波をびびびっと送信したいぜ!な方用。~
SSTPの仕様についてはこちらをどうぞ~
-[[伺か - SSTPプロトコル:http://futaba.sora-iro.net/sstp.html]]
-[[非公式 SSTP/1.x プロトコル仕様書:http://www.ooyashima.net/db/sstp.html]]
**Perl編 [#ab1fff6c]
+このコードをメモ帳にコピペしてSSTP.cgiとか名前つけてサーバーに上げる。
+パーミッションはたぶん701くらいで動くと思う。
+このCGIにブラウザでアクセスする。
++受信側のルータの9801or9821ポートが開放されていて
++受信側のファイヤーウォールのポートも開放されていて
++受信側のSSPなどのSSTPクライアントが起動していて
++受信側のそのSSPなどのSSTPクライアントの設定が合っていて
++尚且つ、このCGIスクリプトがエラーを500エラーを吐かなければ
+SSTPが送信される。ハズ。
#!/usr/bin/perl
# !/usr/local/bin/perlの場合もあるよ!
# 送信内容
$request = 'COMMUNICATE SSTP/1.1'
."\r\n"
.'Sender: カードキャプター'
."\r\n"
.'Sentence: 今日は寒いなー。'
."\r\n"
.'Option: substitute'
."\r\n"
.'Charset: Shift_JIS'
."\r\n"
."\r\n";
# かなり泥臭い設定。joinしろよと(ry
print "Content-type: text/plain\n\n";
# 「何か」の存在チェック&SSTP-Scriptデータの送信
$port_number = '9801';
$check_nanika = &sstp_send($request,$port_number);
if (!$check_nanika) {
$port_number = '9821';
$check_nanika = &sstp_send($request,$port_number);
}
exit;
# ----------------------------------------
# ■以下、サブルーチン
# ▼TCPポート処理 (C)黒衣氏
# 戻り値:SSTPサーバーからのリザルト
# $send='送信内容' $port='出力port'
# $addr='送出先アドレス' $proto='使用プロトコル' $ent='ネットワークアドレス'
sub sstp_send {
use Socket;
my ($send, $port, $addr, $proto, $ent, $result) = @_;
# タイムアウト予約
$SIG{'ALRM'} = sub {$resp='408 Request Timeout'."\r\n"."\r\n";};
alarm 1;
# 送信先IPアドレスの取得
$addr = $ENV{'HTTP_X_FORWARDED_FOR'};
if (index($addr,'.') == -1 ) {
$addr = $ENV{'REMOTE_ADDR'};
}
print 'IP: '.$addr."\r\n";
print 'Port: '.$port."\r\n";
print "\r\n";
# プロトコル名の取得
$proto = getprotobyname('tcp');
# ポートに接続
if (! socket(S, &PF_INET, &SOCK_STREAM, $proto)) {
# $resp = 'TCPポート処理','指定されたソケットがOPENできません'."\r\n";
}
# ネットワークアドレスの取得
$ent = sockaddr_in($port, inet_aton($addr));
# print 'NetworkAddress: '.$ent."\r\n";
# 接続開始
if (connect(S, $ent)) {
select(S);
$| = 1;
select(STDOUT);
# SSTP送信
print S $send;
$result = <S>;
close(S);
}else{
# $resp = ''."\r\n";
}
print '===== send ====='."\r\n";
print $send;
# タイムアウト初期化
alarm 0;
$resp ||= $result;
print '===== response ====='."\r\n";
print $resp;
return($result);
}
*コメント場所 [#q4cea355]
- 何か一言どうぞ。 -- [[レゴキチ]] &new{2010-04-04 (日) 23:53:29};
- レンタルサーバーだとポート開けてくれないのよね。デモページとか見たいかも。 -- [[Don]] &new{2010-04-05 (月) 00:04:46};
- 口調とかが変わるのが最大の問題かな?プロパティみたいなの送ってゴースト側で反応できたら面白いかも -- [[Wiz★]] &new{2010-04-05 (月) 05:16:59};
-送信側はポートの設定いらない気がするけど。 -- [[レゴキチ]] &new{2010-04-05 (月) 10:44:41};
- COMMUNICATE SSTP/1.1ならコミュ呼びかけなので口調の心配することもないよ! -- [[レゴキチ]] &new{2010-04-05 (月) 10:48:00};
- デモページは5月までお待ちください、というのも現在うちの鯖が電源落ちていて、物理的に離れた場所にあるので。 -- [[レゴキチ]] &new{2010-04-05 (月) 19:55:53};
- おお、いいなこれ。COMMUNICATEって書いてあった。こみゅにするのもいいけど、独自イベントみたいになげてもいいかもしれませんね。何のサイトか、拾ってゴーストが説明できるとか。 -- [[Wiz★]] &new{2010-04-10 (土) 17:55:49};
#comment