ping域名用php获取ip

时间:2012-06-01 20:56:54

标签: php ping

所以我可能很蠢,这可能很简单。我有一个包含大约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>';
      }
    
       ?>
    
  • 3 个答案:

    答案 0 :(得分:6)

    如果您的最终目标是让IP地址进入gethostbyname()

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

    echo $ip;
    

    答案 1 :(得分:1)

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

    答案 2 :(得分:0)

    @BrandonBraner 正是我想要做的!仅列表中的最后一个条目工作的原因是因为PHP正确读取了行,但在末尾附加了一个字符。最后一行不会这样做 - 不要问我为什么。也许这是新的角色。

    要绕过它,请使用substr:

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

    我的诀窍。您需要做的就是在域列表中添加一个空的最后一行。