七行プログラミング (452レス)
上下前次1-新
145(2): nobodyさん [] 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: nobodyさん [] 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: nobodyさん [] 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: nobodyさん [sage] 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: nobodyさん [sage] 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: nobodyさん [sage] 03/07/06 12:17 ID:??? AAS
 お前ら!すごいですね 
153: 山崎 渉 [(^^)] 03/07/15 11:13 ID:??? AAS
 __∧_∧_ 
  |(  ^^ )| <寝るぽ(^^) 
  |\⌒⌒⌒\ 
  \ |⌒⌒⌒~|         山崎渉 
    ~ ̄ ̄ ̄ ̄       
154: nobodyさん [sage] 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:??? AAS
      ∧_∧  ∧_∧ 
 ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。 
   =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕 
   = ◎――――――◎                      山崎渉&ぼるじょあ           
157: 山崎 渉 [(^^)] 03/08/15 22:57 ID:??? AAS
     (⌒V⌒) 
    │ ^ ^ │<これからも僕を応援して下さいね(^^)。 
   ⊂|    |つ 
    (_)(_)                      山崎パン                                     
158(1): nobodyさん [sage] 03/08/17 15:16 ID:??? AAS
 山崎ばかりなのもナニなので kat2xhtml 更新。あと 10 byte ほどなんだが…。 
  
 $l='<a href="';sub a{"$l@_\">$a</a>"}sub p{"<span class=\"@_</span>"}while(<>){ 
 ($n,$m,$d,$_,$t,$")=split/[,\n]/;$.-1or$T=$t;$n=~m|<b>([^<]*)(</b>([^<]*))?|;$n 
 =($1&&p"n\">$1").($3&&p"m\">$3");$n=p qq|k" title="$m">$n|if$m.0;s/\x81\x97\x81 
 M/,/gx;s/\s+(target="\w*"|$)//g;s|\s*<br>|<br />|g;s/&(?!\w+;|\#\d+;)/&/g;( 
 ($u,$a)=/^$l([^"]+)">([^<]+)/)?($_=$u=~s/~/%7E/g?a$u:$a=~/^(>){1,2}(\d+)/?a 
 "#R$2":$_):s/"/"/g for@r=split/($l[^"]+">[^<]+<\/a>)/;$A.="<dt>$. :<a id" 
 ."=\"R$.\">$n :$d</a></dt><dd>@r</dd>\n"}open T,$/="$0.tmpl";$_=<T>;s/%(.)/${ 
 $1}/g;print 
  
 ・?xHHHH 形式の数値実体参照を諦め。 
 ・テンプレートのファイル名を "$0.tmpl" に。 
 ・説明やら入れたアーカイヴは 外部リンク:cm.xrea.cc に。 
159: nobodyさん [sage] 03/08/17 15:19 ID:??? AAS
 >>158 
 s/?xHHHH/&#xHHHH/; 
160(1): nobodyさん [sage] 03/08/18 07:15 ID:??? AAS
 ちょっと長くなったけど、初心者質問スレを荒らしている彼に捧げよう。(w 
  
 #--- br.p --- 
 package P;sub c{bless pop,pop}sub s{$_[0]->{s}}sub n{$_[0]->{n}}sub h{my($s,$c) 
 =@_;$c||return$s->{h};($s->{h}+=$c)>0or$s->{h}=0}sub b{my($s,$e)=@_;my@w=keys%{ 
 $s->{w}};my$w=$w[int rand@w];print$s->n,' は ',$w," で攻撃!\n";my($d,$a)=@{$s-> 
 {w}{$w}}{d,a};$d=(my$n=int rand 101)>$a?0:$n>$a/2?int($d/2)-$e->s:$n>$a/20?$d- 
 $e->s:$d;print$d<=0?"ミス!\n":($e->n,' に ',$d," ポイントのダメージ!\n");$e->h( 
 -$d)||print$e->n," を倒した!\n"}package main;sub p{splice@p,int rand@p,1}@p=map 
 P->c($_),@{do'./p.dat'};while(@p>1){my$o=p;my$d=p;print"\n",$o->n,':',$o->h,' ' 
 ,$d->n,':',$d->h,"\n";$o->b($d);push@p,$o;$d->h>0&&push@p,$d}print(shift(@p)->n 
 , " の 勝利!\n") 
  
 #--- p.dat --- 
 [{n=>'煽り',h=>400400(2): nobodyさん [] 2006/02/28(火) 10:19:55 ID:5vE9CKm+(1) AAS
 #!/usr/bin/perl  
 if($ENV{'REQUEST_METHOD'}eq'POST'){read(STDIN,$b,$ENV{'CONTENT_LENGTH'});  
 foreach(split(/&/,$b)){($c,$d)=split(/=/,$_);$d=~tr/+/ /;  
 $d=~s/%([a-f\d]{2})/pack('H2',$1)/egi;$form{$c}=$d}open(F,'>>z.txt');  
 print F "$form{y}\n";close F}print"Content-type:text/html\n\n<html>  
 <form action=x.cgi method=post><input type=text name=y><input type=submit>  
 </form><br><br>";open(F,'z.txt');while(<F>){print "$_<br>\n"}print'</html>';   
s=>1010(3): nobodyさん [sage] 02/11/01 19:53 ID:??? AAS
 ワーイ 3行にナッター 有難う。 
 まだまだperl勉強中の身ですー  
w=>{'キック'=>{d=>60a=>60},'パンチ'=>{d=>20a=>70},}} 
 ,{n=>'荒らし',h=>300s=>0w=>{'キック'=>{d=>100a=>60},'パンチ'=>{d=>40a=>70}} 
 },{n=>'夏厨',h=>200s=>20w=>{'キック'=>{d=>80a=>90},'パンチ'=>{d=>10a=>100}} 
 }]; 
161: nobodyさん [sage] 03/08/18 12:36 ID:??? AAS
 >>160 
 ワロタ 
162: nobodyさん [sage] 03/08/19 11:57 ID:??? AAS
 縮めて CGI プログラムにした。これで彼も満足だろう。 
  
 #--- br.cgi --- 
 #!/usr/local/bin/perl 
 use CGI':all';put header(-charset=>($c='EUC-JP')),start_html(-lang=>ja,-title=> 
 'B.R.',-encoding=>$c);@p=@{do'br.dat'};sub e{splice@p,int rand@p,1}while(@p>1){ 
 *o=e;*d=e;put p"$o{N}:$o{H} $d{N}:$d{H}";@w=keys%{$o{W}};$w=$w[int rand@w];($p, 
 $a)=@{$o{W}{$w}}{D,A};put p("$o{N}は$wで攻撃!",(($p=($n=int rand 101)>$a?0:$n> 
 $a/2?int($p/2)-$d{S}:$n>$a/20?$p-$d{S}:$p)>0or$p=0)?"$d{N}に$pポイントのダメー" 
 .'ジ!':'ミス!');($d{H}-=$p)>0or put p"$d{N}を倒した!";push@p,\%o;$d{H}>0&&push 
 @p,\%d}put p(pop(@p)->{N}, 'の勝利!'),end_html 
  
 #--- br.dat --- 
 [ 
 {N=>'煽り',  H=>400S=>10W=>{'キック'=>{D=>60 A=>60},'パンチ'=>{D=>2020(2): nobodyさん [sage] 02/11/02 00:10 ID:??? AAS
 print <<7LINE; 
 ******************************************************************************* 
 ******************************************************************************* 
 ******************************************************************************* 
 ******************************************************************************* 
 ******************************************************************************* 
 ******************************************************************************* 
 ******************************************************************************* 
 7LINE  
A=>7070(2): nobodyさん [sage] 02/11/21 22:52 ID:??? AAS
 括弧わすれてた・・・ゴメン(再び修正 
  \b(([A-Z][a-z]+){2,})\b 
 }}}, 
 {N=>'荒らし',H=>300S=>0 W=>{'キック'=>{D=>100A=>60},'パンチ'=>{D=>40A=>70 }}}, 
 {N=>'夏厨',  H=>200S=>20W=>{'キック'=>{D=>80 A=>90},'パンチ'=>{D=>10A=>100}}}, 
 ];
163: nobodyさん [sage] 03/08/20 07:02 ID:??? AAS
 メッセージを削るという安直な方法で七行達成。 
  
 #!/usr/local/bin/perl 
 use CGI':all';put header(-charset=>($c='EUC-JP')),start_html -lang=>ja,-title=> 
 BR,-encoding=>$c;@p=@{do'br.dat'};while(@p>1){put p map"$_->{N}:$_->{H}",@p;*d= 
 splice@p,int rand@p,1;*o=$p[int rand@p];@w=keys%{$o{W}};($p,$a)=@{$o{W}{$w=$w[ 
 int rand@w]}}{D,A};put p"$o{N}は$d{N}に$wで攻撃!",(($p=($n=int rand 100)>$a?0: 
 $n>$a/2?int($p/2)-$d{S}:$n>$a/20?$p-$d{S}:$p)>0or$p=0)?"$pダメージ!":'ミス!';( 
 $d{H}-=$p)>0?push@p,\%d:put p b"$d{N}を倒した!"}put p"$p[0]{N}の勝利!",end_html 
164(1): nobodyさん [sage] 03/08/28 05:11 ID:??? AAS
 「素早さ」を実装したいけど、どうも巧くない。 
  
 #--- br.dat --- 
 # 名前, 防御力, 体力, 素早さ(1〜99), [ [ 武器名, 攻撃力, 命中率(1〜99) ] ... ] 
 [ 
 [ '煽り',  10, 300, 99, [['キック',60,50], ['パンチ',30,70]] ], 
 [ '荒らし', 0, 400, 50, [['キック',90,70], ['パンチ',40,80]] ], 
 [ '夏厨',  20, 200, 25, [['キック',80,90], ['パンチ',20,90]] ], 
 ]; 
  
 #--- br.cgi (素早さ実装版) --- 
 #!/usr/local/bin/perl 
 use CGI':all';put header(-charset=>($C='EUC-JP')),start_html -encoding=>$C,lang 
 ,ja,title=>BR;@p=@{do'br.dat'};while($#p){put p map"[$_->[0]:$_->[2]]",@p;$N=0; 
 {for(0..$#p){int$c%(99/$p[$_][3])&&next;($N,*W)=@{*O=splice@p,$_,1}[0,4];($W,$D 
 ,$A)=@{$W[rand@W]};last}$c=0if++$c>9999(1): nobodyさん [sage] 02/11/29 08:01 ID:??? AAS
 7files.cgi 
  
 use CGI':all';*p=*param;($c=$f=script_name)=~s|/[^/]+$||;$d=path_info;opendir D 
 ,$e=".$d/";sub cp{}$F=p(F);$N=$e.p(N);($_=p(S))=~/MV/?rename$F,$N:/CP/?cp$F,$N: 
 /RM/?unlink$F:0;put header,start_html('7files'),startform(0,"$f$d"),table(Tr[ 
 map{$i="$d/$_";($l,$s)=-d".$i"?($f.$i,DIR):($c.$i,-s _);td({bgcolor,(silver, 
 white)[$t++%2]},[checkbox(F,0,".$i",''),a({href,$l},$_),$s,"".localtime((stat)[ 
 9])])}sort grep!/^\./,readdir D]),textfield(N),map(submit(S,$_),MV,CP,RM), 
 endform,end_html 
  
 rename 実装。copy が悩み処ですな。  
;$N||redo}($n,$s)=@{*d=splice@p,rand@p,1}; 
 put p"$Nは$nに$W!",(($D-=($i=rand 100)>$A?$D:$i>$A/2?int($D/2)+$s:$i>$A/20?$s:0 
 )>0or$D=0)?"$Dダメージ!":'ミス!';@p=sort{$b->[3]<=>$a->[3]}@p,\@O;($d[2]-=$D)>0 
 ?@p=(\@d,@p):put p b"$nを倒した!"}put p"$Nの勝利!",end_html 
  
 #--- br.cgi (素早さ未実装版) --- 
 #!/usr/local/bin/perl 
 use CGI':all';put header(-charset=>($C='EUC-JP')),start_html -encoding=>$C,lang 
 ,ja,title=>BR;@p=@{do'br.dat'};while($#p){put p map"[$_->[0]:$_->[2]]",@p;($N, 
 *W)=@{$p[-1]}[0,4];($W,$D,$A)=@{$W[rand@W]};($n,$s)=@{*d=splice@p,rand$#p,1}; 
 put p"$Nは$nに$W!",(($D-=($i=rand 100)>$A?$D:$i>$A/2?int($D/2)+$s:$i>$A/20?$s:0 
 )>0or$D=0)?"$Dダメージ!":'ミス!';($d[2]-=$D)>0?push@p,\@d:put p b"$nを倒した!"} 
 put p"$Nの勝利!",end_html 
165: nobodyさん [sage] 03/08/28 12:01 ID:??? AAS
 >>164 
 まだやってたのかよw 
  
 がんがれ! 
166(1): 保守 [sage] 03/10/04 05:54 ID:??? AAS
 $$_=1for"@ARGV"=~/\w/g;for('0019'..9999){my%c;$n=$_;next if$h{"@{[sort@v=/./g]} 
 "}++&&$o||$z&&/0/||$d&&(grep$c{$_}++,@v);O:for(map[@{[qw(+ - * /)]}[$_&3,$_>>2& 
 3,$_>>4&3]],0..63){@x=(@$_,@v);eval==10&&do{print"$n:$_\n";$c&&last O}for grep 
 s/(\d)/$x[$1]/g,qw/(304)1(526) ((304)15)26 30(41(526)) 30((415)26) (30(415))26/ 
 }} 
167: nobodyさん [sage] 03/10/05 03:33 ID:??? AAS
 本家スレで出てた切符問題の CGI プログラム版。 
 選択された4つの数字のみを調べる。 
  
 #!/usr/local/bin/perl 
 use CGI':all';@n=param n;for(map[@{[qw(+ - * /)]}[$_&3,$_>>2&3,$_>>4&3]],0..63) 
 {@x=(@$_,@n);for$t(qw/(304)1(526) ((304)15)26 30(41(526)) 30((415)26)/,'(30(41' 
 .'5))26'){$_=$t;s/(\d)/$x[$1]/g;eval==10&&push@e,$_.br}}put header,start_html( 
 -title=>7410),startform(0,script_name),p(scrolling_list(qw(-name n -size 10), 
 -values=>[0..9])x4,submit),endform,p(@e),end_html 
  
 >>166 は 5.005_03 なら動いたけど 5.8.0 だと不可。 
168: nobodyさん [sage] 03/10/05 20:23 ID:??? AAS
 コマンドライン・CGI 両対応版。 
  
 #--- 7410.cgi --- 
 #!/usr/local/bin/perl 
 use CGI':all';sub e{for(map[@{[qw(+ - * /)]}[$_&3,$_>>2&3,$_>>4&3]],0..63){@x=( 
 @$_,@n);for$t(qw/(304)1(526) ((304)15)26 30(41(526)) 30((415)26) (30(415))26/){ 
 $_=$t;s/(\d)/$x[$1]/g;eval==10&&do{$r?push@e,$_.br:print"$n:$_\n";$c&&return}}} 
 @e}if($r=$ENV{'REMOTE_ADDR'}){@n=param n;put header,start_html(-title=>7410), 
 startform(0,script_name),p(scrolling_list(qw(-name n -size 10 -values),[0..9])x 
 4,submit),endform,p(e),end_html}else{$$_=1for"@ARGV"=~/\w/g;$n=$_,$h{"@{[sort@n 
 =/./g]}"}++&&$o||$z&&/0/||$d&&do{my%c;grep$c{$_}++,@n}or e for'0019'..9999} 
 __END__ 
  
 usage: ./7410.cgi [ -cdoz ] 
 -c : 1組の数字に対し1つの計算式のみ出力 
 -d : 同じ数字を使わない 
 -o : 1組の数字に対し1つの出現順序のみ出力 
 -z : 0を含めない 
169: nobodyさん [sage] 03/10/08 01:14 ID:??? AAS
 5.005_03 と 5.8.0 の両方でマジメにチェック & 縮め。 
  
 #!/usr/local/bin/perl 
 use CGI':all';sub e{my@e;for(0..63){@x=(@{[qw(+ - * /)]}[$_&3,$_>>2&3,$_>>4&3], 
 @n,param n);for$t(qw/(304)1(526) ((304)15)26 30(41(526)) 30((415)26) 
 (30(415))26/){$_=$t;s/(\d)/$x[$1]/g;10-eval or$r?push@e,$_.br:put("$n:$_\n"),$c 
 &&return}}@e}($r=$ENV{REMOTE_ADDR})?put(header,start_html(-title=>7410), 
 startform(0,script_name),p(scrolling_list(-values=>[0..9],name,n,size,10)x4, 
 submit),endform,p(e),end_html):do{$$_=1for"@ARGV"=~/\w/g;$n=$_,$h{"@{[sort@n= 
 /./g]}"}++&&$o||$z&&/0/||$d&&4>keys%{{map{$_,1}@n}}or e for'0019'..'9999'} 
上下前次1-新書関写板覧索設栞歴
あと 283 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.021s