我在linux机器上试过这个
my $a = $ENV{HOSTNAME};
print "\nhostname = $a\n";
我明白了,
hostname = sims5.eng.netapp.com
我在Solaris中尝试过相同的操作,但我什么都没得到。
hostname =
我可以使用下面的代码,
use Sys::Hostname;
$host = hostname;
但是有没有其他方法获取主机名而不在solaris机器中导入Sys :: Hostname。
感谢。
答案 0 :(得分:3)
如果您真的不想使用模块,只需从以下文件中读取主机名即可:
/etc/nodename
答案 1 :(得分:1)
这是@ raina77ow建议使用来自Sys::Hostname
,
my $host = hostname() or warn "No hostname";
sub hostname {
require "sys/syscall.ph";
require "sys/systeminfo.ph";
my $host = "\0" x 65; ## preload scalar
syscall(&SYS_systeminfo, &SI_HOSTNAME, $host, 65) != -1 or return;
$host =~ tr|\0\r\n||d;
return $host;
}