In order to make HTTP communication possible, certain information about the server and the requester must be publicly available. The server saves such information in special variables--the environment variables.
Most of environment variables contain information about the server configuration, but a few also contain information about the source of a request:
Extracting these variables is easy, they are available to Perl as an ordinary hash.
#!/usr/local/bin/perl $ua = $ENV{'HTTP_USER_AGENT'}; $rhost = $ENV{'REMOTE_HOST'}; $radd = $ENV{'REMOTE_ADDR'}; print "Content-type: text/plain\n\n"; print "HTTP_USER_AGENT: " . $ua . "\n"; print "REMOTE_HOST: " . $rhost . "\n"; print "REMOTE_ADDR: " . $radd . "\n";