#!/usr/bin/perl # startup with "scriptname localport redirect" use warnings; use strict; use IO::Socket; # port to listen on, stuff to write to clients my ( $localport, $redirect ) = ( $ARGV[0], $ARGV[1] ); # setting up server my $server = IO::Socket::INET->new( LocalPort => $localport, Proto => 'tcp', Listen => SOMAXCONN, Reuse => 1 ) || die "couldn't be a tcp server on port $localport:$@\n"; # status print qq{DAEMON LISTENING ON: $localport\n}; # new connections are instantiated like so while ( my ($client, $c_addr) = $server->accept()) { # collecting details about new connection my ($client_port, $c_ip) = sockaddr_in($c_addr); my $client_ipnum = inet_ntoa($c_ip); my $client_host = gethostbyaddr($c_ip, AF_INET); # printing client info print qq{INCOMING: $client_host, $client_ipnum\n}; # retrieving whatever the incoming connection is saying while(<$client>) { print; print $client $redirect; } }