- gethostent
- sethostent STAYOPEN
- endhostent
这个函数遍历你的 /etc/hosts 文件并且每次返回一条记录。gethostent 的返回值是:
($name, $aliases, $addrtype, $length, @addrs)
这里 @addrs 是一个裸地址的列表。在互联网域,每个地址(因历史原因)是四个字节长,可以用下面方法解包的东西:
($a, $b, $c, $d) = unpack('C4', $addrs[0]);
使用 gethostent 的脚本不能认为是可移植的。如果一台机器使用一个名字服务器,它就不得不询问互联网以满足一个获取该星球上每一台机器地址的请求。所以 gethostent 没有在这样的机器上实现。参阅 gethostent(3) 获取其他细节。
Net::hostent 模块模块提供了一个用名字访问这个函数的接口。