有没有办法在Perl中查询服务器的操作系统类型?例如,如果我知道一个远程服务器正在运行Windows,我可能会从我的本地计算机向它发送一个winver,并获得输出以确定它正在运行的Windows版本。然而,有没有一种更抽象的方式,简单地问“你是什么?”
由于CPAN很大,我想知道是否有封装这种功能的模块。
发布于 2011-09-09 23:56:59
如果您可以在删除服务器上获得命令行访问权限,那么您应该能够使用%ENV
jmaney> perl -e 'print "$ENV{OSTYPE}\n";'
linux编辑:它看起来好像在Windows7(或者,至少在我笔记本上的Windows7)中的密钥是OS。所以,不幸的是,通过%ENV的确切解决方案依赖于操作系统...但是,您可以查看定义了$ENV{OS}或$ENV{OSTYPE}中的哪一个(如果两者都定义了,则规范地选择要使用哪一个),并进行相应的处理。
发布于 2011-09-10 00:03:13
没有万无一失的方法可以做到这一点,但header -服务器不需要发送--通常包含操作系统。例如,它可能看起来像这样(来自Wikipedia):
Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)The Perl CGI module has an http function that gets the HTTP headers。你可以这样使用它:
my $server = $q->http('Server');
# Test $server for Windows, *nix, etc
# My Perl experience is minimal and I haven't used it in
# a while, so I'm not going to give an example here, but
# someone can feel free to edit one in.CPAN可能有一个模块来为您测试Server报头。
https://stackoverflow.com/questions/7364214
复制相似问题