tcp-banger.pl

来自「-」· PL 代码 · 共 48 行

PL
48
字号
#!/usr/local/bin/perl# tcp-banger.pl	## Duane Wessels, Dec 1995## Usage: tcp-banger.pl [host [port]] < url-list## Sends a continuous stream of HTTP proxy requests to a cache.  Stdin is a# list of URLs to request.  Run N of these at the same time to simulate a# heavy client load.## NOTE: does not simulate "real-world" events such as aborted requests# (connections) and other network problems.$|=1;$host=(shift || 'localhost') ;$port=(shift || '3128') ;require 'sys/socket.ph';$sockaddr = 'S n a4 x8';($name, $aliases, $proto) = getprotobyname("tcp");($fqdn, $aliases, $type, $len, $thataddr) = gethostbyname($host);$thissock = pack($sockaddr, &AF_INET, 0, "\0\0\0\0");$that = pack($sockaddr, &AF_INET, $port, $thataddr);while (<>) {	chop ($url = $_);	die "socket: $!\n" unless        	socket (SOCK, &AF_INET, &SOCK_STREAM, $proto);	die "bind: $!\n" unless        	bind (SOCK, $thissock);        die "$host:$port: $!\n" unless		connect (SOCK, $that);        select (SOCK); $| = 1;        select (STDOUT);	print SOCK "GET $url HTTP/1.0\r\nAccept: */*\r\n\r\n";	$_ = <SOCK>;	($ver,$code,$junk) = split;	printf "%s %s\n", $code ? $code : 'FAIL', $url;	1 while (read(SOCK,$_,4096));	close SOCK;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?