1

だから私はおそらく愚かで、これはおそらく非常に単純です。約 300 のドメイン名を含むテキスト ファイルがあります。手動でpingを実行したくないので、ドメイン名をpingしてIPアドレスを返し、エコーする簡単な小さなphpスクリプトに取り組んでいます

テキストファイルにドメインがあり、ファイルを読み取って名前を出力できますが、2番目に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>';
      }
    
       ?>
    
  • 4

    3 に答える 3

    6

    あなたの最終目標がIPアドレスを調べることである場合gethostbyname()

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

    echo $ip;
    
    于 2012-06-01T20:58:01.947 に答える
    1

    gethostbyname() は、入力したドメインの IP アドレスを返します。 http://php.net/manual/en/function.gethostbyname.php

    于 2012-06-01T20:58:23.793 に答える
    0

    @BrandonBranerまさに私もやりたかったことです!リストの最後のエントリのみが機能する理由は、PHP が行を正しく読み取りますが、最後に文字を追加するためです。最後の行ではこれを行いません - 理由は聞かないでください。おそらくそれは改行文字です。

    それを回避するには、substr を使用します。

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

    私のためにトリックをしました。あとは、ドメインのリストに空の最後の行を追加するだけです。

    于 2013-02-07T16:13:21.557 に答える