Perl 来自CGI的用户名computername

Perl 来自CGI的用户名computername,perl,cgi,Perl,Cgi,有没有办法通过perl中的CGI获取远程客户端的用户名和计算机名?我尝试在CGI脚本中打印ENV hash,但无法获取此信息。该信息未通过HTTP传递,可能根本不存在(例如,我的手机不需要我使用用户名登录,它是单用户设备) 您可以获取请求来自的计算机(可能是代理服务器)的IP地址,并使用该地址获取DNS(或其他网络协议)名称,但这是您所能获得的最接近的地址。请查看。他们可能会让你尽可能接近一个“计算机名”。用户名根本不可能通过(例如,技术上,您可以考虑授权和/或电子邮件头接近,但是它不太可能在大

有没有办法通过perl中的CGI获取远程客户端的用户名和计算机名?我尝试在CGI脚本中打印ENV hash,但无法获取此信息。该信息未通过HTTP传递,可能根本不存在(例如,我的手机不需要我使用用户名登录,它是单用户设备)

您可以获取请求来自的计算机(可能是代理服务器)的IP地址,并使用该地址获取DNS(或其他网络协议)名称,但这是您所能获得的最接近的地址。

请查看。他们可能会让你尽可能接近一个“计算机名”。用户名根本不可能通过(例如,技术上,您可以考虑授权和/或电子邮件头接近,但是它不太可能在大多数情况下填充)。
远程主机方法尤其执行反向DNS查找。如果返回某个内容,您将得到结果,否则您只需获得远程地址(例如ip)。

理论上,您可以。首先,您需要通过
$ENV{'REMOTE\u ADDR'}
变量获取客户端的IP。然后,如果您想要更简单的API(前者与C套接字完全相同),需要使用套接字模块,例如
Sockets
IO::socket
,并探测特定端口以获取此信息;例如,如果用户正在运行Windows,他可以打开端口137上的NetBios,默认情况下,端口137会显示计算机名

然而,这种方法在法律上是灰色地带,在某些国家可能被归类为试图未经授权访问信息

然而,用户仅仅通过访问您的页面就只会泄露HTTP头中包含的IP、useragent、referer和其他信息


如果你想要更多的信息,你可以做你自己的研究,我给你的基础知识

多谢各位。我在某个地方读到有保存这些信息的env变量,但我找不到。这就是我发布这个问题的原因