ping域名以使用PHP获取IP


ping domain name to get ip with php

所以我可能很愚蠢,这可能非常简单。我有一个包含大约 300 个域名的文本文件。我不想手动 ping 它们,所以我正在编写一个简单的小 php 脚本来 ping 域名返回 IP 地址,然后回显它们

我在文本文件中有域,我可以读取文件并输出名称,但是当我尝试ping它们的第二个我得到的只是一个空白的点列表

  • ,就像我说的那样可能缺少一些如此愚蠢的东西,但我感谢任何帮助
     <?php
     $names = file('sites.txt');
     foreach ($names as $name) {
     $testping = exec("ping  $name");
      echo '<li>' . $testping . '</li>';
     }
      ?>
    

    新代码**

     $names = file('sites.txt');
     foreach ($names as $name) {
       $ip = gethostbyname($name);
    
      echo '<li>' . $ip . '</li>';
      }
       ?>
    

  • 如果您的最终目标是获取 IP 地址,请查看gethostbyname()

    $names = file('sites.txt');
     foreach ($names as $name) {
         $ip = gethostbyname($name);
         echo '<li>' . $ip. '</li>';
     }
    

    echo $ip;
    

    gethostbyname() 将返回您输入的任何域的 IP 地址。 http://php.net/manual/en/function.gethostbyname.php

    @BrandonBraner这正是我也想做的!之所以只有列表中的最后一个条目有效,是因为 PHP 正确读取了这些行,但在末尾附加了一个字符。它不会在最后一行这样做 - 不要问我为什么。也许是新行字符。

    要绕过它,请使用 substr:

        $names = file('mysites.txt');
    foreach ($names as $name) {
       $mydomain = substr($name, 0, -1);
       $ip = gethostbyname($mydomain);
      echo '<li>' . $ip . '</li>';
      }
    

    为我做了这个把戏。然后,您需要做的就是在域列表中添加最后一行空。