##################################################
mostly stylistic (and hopefully constructive) suggestions re "Simple WebServer Scanner"
#!/usr/bin/perl -w # swesc.pl use strict; use warnings; use Socket; my $remote = shift; my $port = 80; Usage() unless($remote); if ($port =~ /\D/) { $port = getservbyname($port, 'tcp') } my $iaddr = inet_aton($remote) or die "Error with inet_aton: +$!"; my $paddr = sockaddr_in($port, $iaddr) or die "Error with sockaddr_in +: $!"; my $proto = getprotobyname('tcp') or die "Error with getprotobyn +ame: $!"; my $submit = "HEAD / HTTP/1.0\r\n\r\n"; socket(SOCK, PF_INET, SOCK_STREAM, $proto) or die "Error with socket: +$!"; connect(SOCK, $paddr) or die "cannot connect to $remote: $!"; send(SOCK,$submit,0); while(<SOCK>) { if($_ =~ /Server: (.*)/) { print "\n$_"; } } close(SOCK); ###################################################################### +#### sub Usage { print "\nUsage : $0 <remote host>\n"; exit(); } ###################################################################### +#### =head1 Mostly stylistic suggestions, hopefully constructive: X -w on shebang line or use warnings; X use strict; unless ($remote... instead of if ($ARGV[0]... Don't need die "no port specified"... line Rename "affichage" to "Usage" Mixed-case subroutine names Use "or" instead of "||" in die statements Use $! in all die messages Consistant die messages my $remote = shift; =head1 good monk Asmo's original code: #!/usr/bin/perl use Socket; use Strict; use warnings; my $remote = $ARGV[0]; my $port=80; if ($ARGV[0] eq "") { affichage(); } sub affichage { print "\n\nUsage : $0 <remote host>\n"; exit(); } $submit = "HEAD / HTTP/1.0\r\n\r\n"; if($port =~ /\D/) { $port = getservbyname($port, 'tcp') } die "no port specified" unless $port; my $iaddr = inet_aton($remote) || die "$remote"; my $paddr = sockaddr_in($port, $iaddr) || die "Caca !!"; my $proto = getprotobyname('tcp') || die "protocol !!"; socket(SOCK, PF_INET, SOCK_STREAM, $proto) || die "cannot open socket + : $!"; connect(SOCK, $paddr) || die "cannot connect to $remote: $!"; send(SOCK,$submit,0); while(<SOCK>) { if($_ =~ /Server: (.*)/) { print $_; } } close(SOCK); =cut
In reply to Re: examples using Compress::Zlib ? (thanks)
by ybiC
in thread examples using Compress::Zlib ?
by ybiC
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |