如何通过perl脚本获取Solaris机器中的主机名?

时间:2013-05-21 05:58:18

标签: perl solaris hostname

我在linux机器上试过这个

my $a =  $ENV{HOSTNAME};
print "\nhostname = $a\n";

我明白了,

hostname = sims5.eng.netapp.com

我在Solaris中尝试过相同的操作,但我什么都没得到。

hostname = 

我可以使用下面的代码,

use Sys::Hostname;
$host = hostname;

但是有没有其他方法获取主机名而不在solaris机器中导入Sys :: Hostname。

感谢。

2 个答案:

答案 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;
}