为什么我收到此错误? server_port()按预期工作,afaik REMOTE_PORT也是一个有效的环境变量。
是否有其他方法可以获取客户端的端口号?
这是我的完整代码:
#!/usr/bin/perl -w
use CGI qw(:all);
use CGI::Carp qw(fatalsToBrowser);
use strict;
use Cwd;
#################################
my $time = localtime();
my $dir = cwd();
my $parameter = param('name');
my $q = new CGI;
my $addr = $q->remote_host();
my $request = $q->request_method();
my $port = $q->server_port();
print "Content-type:text/html\r\n\r\n";
print '<html>';
print '<head>';
print '<title>Auth2</title>';
print '</head>';
print '<body>';
print "<h1> The time is $time </h1>";
print "<p> Current directory is $dir</p>";
print "<p> Request parameter: $parameter</p>";
print "<p> Remote address: $addr</p>";
print "<p> Remote port: $port</p>";
print "<p> Request method: $request </p>";
print '</body>';
print '</html>';
1;
答案 0 :(得分:4)
可用的方法记录在man page中,看起来remote_port
不是其中之一。
afaik REMOTE_PORT也是一个有效的环境变量。
如果它是环境变量,那么您只需将其作为一个访问:
my $port = $ENV{REMOTE_PORT};
除此之外,还不清楚为什么你需要远程端口号,因为它可能只是远程系统的临时端口范围内的任意数字。这也许是没有提供访问它的方法的原因。