PHP获取在txt文件中定义的本地机器列表的IP


PHP Getting IPs of a list of local machines defined on a txt file

我正试图对一家拥有大量安全、防火墙、端口禁用等功能的大型公司的机器(工作站)进行动态盘点。

我在整个酒店看到的唯一可用的是ping的可用性,所以我认为这是解决方案的最佳方法。

我想在windows工作站上做一个批处理脚本,但对批处理脚本一无所知会给我的项目增加一个学习曲线期。

我的经验是PHP,我知道有一个函数可以调用系统函数。我在谷歌上搜索了一下,有几个人在从系统功能中获得有效输出时遇到了问题。

我的具体问题是,你将如何解决这个问题:

  1. 所有机器名称的txt列表
  2. ping可用性
  3. php服务器已准备就绪,可以进行配置,以防我需要关闭安全模式或类似的模式

感谢您的反馈。

给定一个.ini格式的文本列表,如下所示:

服务器.ini

[servers]
hostnames[]='host1'
hostnames[]='host2'
hostnames[]='host3'
hostnames[]='hostN'

我建议编写这样的代码,利用PHP内置函数gethostbyname():

<?php
// Parse without sections
$servers_array = parse_ini_file("servers.ini");
$results = array();
foreach ($servers_array['hostnames'] as $hostname){
    $ip = gethostbyname($hostname);
    $results[$hostname] = $ip;
}
print_r($results);