七行プログラミング (452レス)
1-

127: ◆PAmX3cjLtw 03/04/18 14:01 ID:yrVQyLZr(1/2) AAS
こんなスレあったんだ。燃えてきた!
128
(8): ◆PAmX3cjLtw 03/04/18 15:48 ID:yrVQyLZr(2/2) AAS
俺も作ってみた。
2chモドキの掲示板です。ログファイル F が必要。
URLと、発言番号への自動リンクがありますが、使い物になるかどうか・・・。
Win98のPWSとLinuxのApacheで動作を確認しました。。。

------------ 7ch.cgi -----------------
#!/usr/bin/perl
use CGI':all';*i=*param;$n=i N;$m=i M;$t=i T;open F,'+<F';eval{flock F,2};1 for
<F>;$.++;if($t){$_=$t;s/</</g;$h='<a href=';s!(https?外部リンク:.+?)$!$h$1>$1</a>!mg
;s!>>(\d+)!$h#$1>>>$1</a>!g;s/\n/br/eg;seek F,0,2;print F dt("$. :".b(a{href=>
$m?"mailto:$m":undef,name=>$.},$n||='名無しさん'),':'.localtime),(dd $_.br.br)
."\n"}seek F,0,0;*x=*textfield;print header(-charset=>''),start_html(-style=>'
body{background:#eee}b{color:green}').startform,dl(<F>),hr,submit('書き込む'),'
名前:',x(N),' E-mail:',x(M),br,textarea(T,'',5,70,1),endform.end_html;
--------------------

結構つかれた・・・。
129: 03/04/18 16:33 ID:??? AAS
すげぇ…
130
(1): 03/04/19 00:20 ID:??? AAS
>>128
日本語まともに表示できるようにしたら、URL リンク外してもはみだしちゃった。

#!/usr/bin/perl
use CGI':all';open F,'+<F';eval{flock F,2};[<F>];$.++;*i=*param;if($_=i T){s/<
/&lt;/gx;$h='<a href="';s!(&gt;&gt;\d+)!$h#R$1">$1</a>!g;s/\n/br/eg;$m=i M;seek
F,0,2;print F dt("$. :".b(a{name=>"R$.",$m&&(href=>"mailto:$m")},i(N)||
'名無しさん'),':'.localtime),dd($_.br.br),"\n"}*x=*textfield;$c='Shift_JIS';
seek F,0,0;put header(-charset=>$c),start_html(-encoding=>$c,-lang=>'ja',
-style=>'body{background:#eee}b{color:green}'),dl(<F>),hr,startform,p(submit(
'書き込む'),' 名前:',x(N),' E-mail:',x(M),br,textarea(T,'',5,70,1)),endform,
end_html

CGI.pm は 2.91 と 2.46 で確認。&を戻して使って下され。
131
(1): 03/04/19 04:23 ID:??? AAS
収まった。

#!/usr/bin/perl
use CGI':all';open F,'+<F';[<F>];$.++;*i=*param;s!(&gt;&gt;)(\d+)!'<a href="#R'
."$2\">$1$2</a>"!eg,s/\n/br/eg,seek(F,0,2),eval{flock F,2},print F dt("$. :".b
(a{name,"R$.",($m=i M)&&(href,"mailto:$m")},i(N)||'nobodyさん'),':'.localtime)
,dd($_.br.br),"\n"if$_=escapeHTML i T;*x=*textfield;$c='Shift_JIS';seek F,0,0;
put header(-charset=>$c),start_html(-encoding=>$c,-lang=>'ja',-style=>'b{color:
green}body{background:#eee}'),dl(<F>),hr,startform,p(submit('書き込む'),' 名前'
.':',x(N),' E-mail:',x(M),br,textarea(T,'',5,70,1)),endform,end_html

escapeHTML 使ったから、CGI.pm v2.46 だと不可。
132: ◆PAmX3cjLtw 03/04/19 12:39 ID:S+81Ncm0(1/2) AAS
>>131
修正ありがとう!勉強になります。

httpへの自動リンクも入れてみたけど、p抜かしたりズルしてます。
【今後の課題】
・キャップもどき追加(s/#.*/crypt$&,'◆'/e)
・全角小文字のkが文字化けするバグ

use CGI':all';open F,'+<F';[<F>];$.++;*i=*param;s!>>(\d+)!a{href,"#R$1"},
$&!eg,s!https?外部リンク:.+?$!a{href,$&},$&!emg,s/\n/br/eg,seek(F,0,2),eval{flock F,2},
print F dt("$. :".b(a{name,"R$.",($m=i M)&&(href,"mailto:$m")},i(N)||'nobody'.
'さん'),':'.localtime),dd($_.p),"\n"if$_=escapeHTML i T;*x=*textfield;seek F,0
,0;put header(-charset=>$c='Shift_JIS'),start_html({lang,'ja',encoding,$c,Style
,'b{color:#080}body{background:#eee}'}),dl(<F>),hr,startform,submit('書き込む')
,' 名前:',x(N),' E-mail:',x(M),br,textarea(T,'',6,70,1),endform,end_html
133: 動画直リン 03/04/19 12:40 ID:PZJVQOkw(1) AAS
外部リンク:www.agemasukudasai.com
134: ◆PAmX3cjLtw 03/04/19 12:41 ID:S+81Ncm0(2/2) AAS
すまそ。&置換するの忘れました。

use CGI':all';open F,'+<F';[<F>];$.++;*i=*param;s!&gt;&gt;(\d+)!a{href,"#R$1"},
$&!eg,s!https?外部リンク:.+?$!a{href,$&},$&!emg,s/\n/br/eg,seek(F,0,2),eval{flock F,2},
print F dt("$. :".b(a{name,"R$.",($m=i M)&&(href,"mailto:$m")},i(N)||'nobody'.
'さん'),':'.localtime),dd($_.p),"\n"if$_=escapeHTML i T;*x=*textfield;seek F,0
,0;put header(-charset=>$c='Shift_JIS'),start_html({lang,'ja',encoding,$c,Style
,'b{color:#080}body{background:#eee}'}),dl(<F>),hr,startform,submit('書き込む')
,' 名前:',x(N),' E-mail:',x(M),br,textarea(T,'',6,70,1),endform,end_html
135
(3): 03/04/19 12:54 ID:??? AAS
ライブラリをつかってよいのなら、主要な処理はライブラリに書けば数文字でかけますね。
136
(2): 03/04/19 21:11 ID:??? AAS
>>135
個人的にはモジュール不可派だけど、WebProg だし
標準モジュールだけ使用可にした方が面白いものが
出てきそうな気がするのでそういう縛りで考えてるよ。
137
(2): ◆PAmX3cjLtw 03/04/20 02:19 ID:??? AAS
encoding をハズしてなんとかイけたよ。疲れた。

まとめ&使い方
・番号自動リンク( >>100 とか入力する)
・URL自動リンク(外部リンク:...行末までリンク)
・キャップ(名前欄の # 以降をcryptします)
・EUC-JP で保存する(じゃないと文字化けする)
・&を&に置換する
・カレントに空ファイル F を作ること
------------------------------- 7ch.cgi
use CGI':all';open F,'+<F';[<F>];$.++;*i=*param;s!&gt;&gt;(\d+)!a{href,"#R$1"},
$&!eg,s!https?外部リンク:.+?$!a{href,$&},$&!emg,s/\n/br/eg,seek(F,0,2),eval{flock F,2},
($n=i(N)||'nobodyさん')=~s/#.*/crypt$&,'◆'/e,print F dt("$. :".b(a{name,"R$."
,i(M)&&(href,'mailto:'.i M)},font{color,'green'},$n),':'.localtime),dd($_.p),"
"if$_=escapeHTML i T;seek F,0,0;*x=*textfield;put header(-charset=>'EUC-JP'),
start_html({lang,'ja',bgcolor,'#efefef'}).dl(<F>),startform,p(submit('書き込む'
),' 名前:',x(N),' E-mail:',x(M),br,textarea(T,'',6,70,1)),endform,end_html;
138: [i] 03/04/20 04:52 ID:??? AAS
縮めるならロックなんてしなくてもよいだろ。
139: 03/04/20 04:57 ID:??? AAS
>>137
・改行しないとレス番が2以上に増えない。
・Mozilla 1.3 だと font では色変わらんかったんで、CSS に戻し。
・> 一個でリンク。

use CGI':all';open F,'+<F';[<F>];seek F,0,2;*i=*param;s!&gt;(\d+)!a{href,"#R$1"
},$&!eg,s!https?外部リンク:.+$!a{href,$&},$&!emg,s/\n/br/eg,eval{flock F,2},($n=i(N)||
'nobodyさん')=~s/#.+/crypt$&,'◆'/e,print F dt(++$.,':'.b(a{name,"R$.",i(M)&&(
href,'mailto:'.i M)},$n),':'.localtime),dd($_.p),"\n"if$_=escapeHTML i T;seek
F,0,0;*x=*textfield;put header(-charset=>'EUC-JP'),start_html({lang,ja,Style,
'b{color:#080}body{background:#eee}'}),dl(<F>),hr,startform,p(submit('書き込む'
),' 名前:',x(N),' E-mail:',x(M),br,textarea(T,'',6,70,1)),endform,end_html

>>130 での変更は HTML 的に正しくする為のものなんだけど
(文字コードや言語を指定するから化けずに済む)、そーゆーの
より「似せる」方を重視してるのかな?
140
(1): 山崎渉 [(^^)sage] 03/04/20 05:57 ID:??? AAS
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
141: 03/05/09 00:09 ID:seZLVSXV(1) AAS
∩(゚∀゚∩)age
142
(1): 03/05/09 21:42 ID:??? AAS
えぇと、みんななんか面白そうなコトやってるね。
俺も参加しよう思ったけど…読めない所が多いや。
143: 03/05/10 00:35 ID:??? AAS
>>142
過疎スレだから、分からんトコは*自分で調べた上で*
適宜質問してくれれば良いかと。
144: 山崎渉 [(^^)] 03/05/22 02:04 ID:??? AAS
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
145
(2): 03/05/28 05:53 ID:dphN6O/1(1) AAS
ポートスキャナー。

# portscan.pl
use Socket;$h=$ARGV[0];$p=--$ARGV[1];$e=$ARGV[2];$i=inet_aton($h)||die;print"ho
st $h\n\n";while($p++<$e){$f=1;for(1..2){$t=$f?"tcp":"udp";socket(S,PF_INET,
SOCK_STREAM,getprotobyname($t));print"$p $t\n"if connect(S,pack_sockaddr_in($p,
$i));close(S);$f=0}}

usage >peal portscan.pl [host] [start_port] [end_port]

ちなみに、エラーチェックもしてないし、socketらへんもかなり適当なので動かないかもしれますん。
そんときは自分で手を加えるなりして動くようにしてください。
146: 03/05/28 06:12 ID:u3FXwnkV(1) AAS
(´―`)y━~~タバコ代上がるのイヤー
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
(´―`)y━~~タバコ代上がるのイヤー
147
(1): 145 03/05/28 19:26 ID:MVa2hSnY(1) AAS
縮まった。

# portscan.pl
use Socket;$h=$ARGV[0];$p=--$ARGV[1];$i=inet_aton $h||die;print"host $h\n\n";
while(++$p<$ARGV[2]){$f=1;for(1..2){socket S,PF_INET,SOCK_STREAM,getprotobyname
($f?"tcp":"udp");print"$p $t\n"if connect S,pack_sockaddr_in($p,$i);close S;$f=
0}}

>>145と同じ理由で動かないかもしれますん。

これ以上縮まらないヨカソ…。
148: 03/05/28 20:05 ID:Edz5ugJ5(1) AAS
>>147
板違い
149: 145 03/05/28 21:50 ID:RXOOGbeu(1) AAS
言ってるそばから縮まった。

# portscan.pl
use Socket;@t=@ARGV;$p=--$t[1];$i=inet_aton $t[0]||die;print"host $t[0]\n\n";
while(++$p<$t[2]){$f=1;for(1..2){socket S,PF_INET,SOCK_STREAM,getprotobyname($f
?"tcp":"udp");print"$p $t\n"if connect S,pack_sockaddr_in($p,$i);close S;$f=0}}
150: 03/05/29 12:44 ID:??? AAS
use Socket;($h,$s,$e)=@ARGV;$i=inet_aton($h)||die;print"host $h\n\n";for$p($s..
$e){for('tcp','udp'){socket S,PF_INET,SOCK_STREAM,getprotobyname$_;print"$p $_
"if connect S,pack_sockaddr_in$p,$i;close S}}
151: 03/07/01 18:25 ID:??? AAS
#!/usr/local/bin/perl
print "Hello World!";
print "Hello World!";
print "Hello World!";
print "Hello World!";
print "Hello World!";
print "Hello World!";
152: 03/07/06 12:17 ID:??? AAS
お前ら!すごいですね
153: 山崎 渉 [(^^)] 03/07/15 11:13 ID:??? AA×

154: 03/07/24 09:35 ID:??? AAS
おもしろそう・・・
155
(1): 山崎 渉 [(^^)sage] 03/08/02 02:38 ID:??? AAS
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
156: ぼるじょあ ◆ySd1dMH5Gk [(^^)] 03/08/02 05:21 ID:??? AA×

1-
あと 296 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.013s