#!/usr/bin/perl use Socket; #-- 初期設定 $server = 'www00.tok2.com'; $path = 'http://www00.tok2.com/home/********/bbs/light.cgi'; $body = 'mode=regist&name=NAME&email=test@yahoo.com&sub=title&comment='; $body .= rand(1000); $len = length($body); #-- データ作成 $data = << "EOF"; POST $path HTTP/1.1 Host: localhost Content-Length: $len $body EOF #-- 改行を"\r\n"に変更 $data =~ s/\x0D\x0A|\x0D|\x0A/\r\n/g; #-- 接続処理 if((Connect($server, 'http', 'tcp', 80)) != 0){ print "Connect ERROR!\n"; exit; } #-- 送信 print SOCK "$data"; #-- レスポンスを受け取る while($res = ){ $res =~ s/\x0D\x0A|\x0D|\x0A/\n/g; print $res; } close(SOCK); select(STDOUT); exit; ################################################# # Connect サブルーチン ################################################# sub Connect{ my($port, $struct); if(($port = getservbyname($_[1], $_[2])) == NULL){ $port = $_[3]; } $struct = sockaddr_in($port, inet_aton($_[0])); socket(SOCK, PF_INET, SOCK_STREAM, 0) || return(-1); connect(SOCK, $struct) || return(-2); select(SOCK); $| = 1; select(STDOUT); return(0); }