2

このコードを使用して、訪問者 (クライアント) の情報を理解します。Xampp の仮想サーバーで実行されていますが、メイン サーバー (ホスト) では実行できません。空白のページしか表示されません。

$info = system('ipconfig /all');
echo $info;
4

3 に答える 3

3

これはあなたを助けるかもしれません

サーバー IP

サーバーの IP アドレスは から取得できます$_SERVER['SERVER_ADDR']

クライアント IP アドレス

からクライアント IP を取得できます。$_SERVER['REMOTE_ADDR']

編集:外部コマンドの出力を取得する方法をコメントで尋ねます-1つの方法は、バッククォートを使用することです。

$ipAddress=$_SERVER['REMOTE_ADDR'];
$macAddr=false;

#run the external command, break output into lines
$arp=`arp -a $ipAddress`;
$lines=explode("\n", $arp);

#look for the output line describing our IP address
foreach($lines as $line)
{
   $cols=preg_split('/\s+/', trim($line));
   if ($cols[0]==$ipAddress)
   {
       $macAddr=$cols[1];
   }
}

しかし、クライアントが LAN 上にない場合はどうなるでしょうか。

クライアントにその情報を自発的に提供してもらい、他の手段で送信してもらうことができない限り、あなたは運が悪い. Javascript の使用に関する Peter G Mac の提案を参照してください。

次のコマンドを試すこともできます

 <?php
  // http://www.php.net/manual/en/function.exec.php#85930

  $_ = null;

  // If you care about the return value, use this:
    passthru("C:\\WINDOWS\\system32\\cmd.exe /c custom.bat",$_);
    header('Content-Type: text/plain');
    echo $_;
  // if you don't care, just use this:
    $_ = exec("C:\\WINDOWS\\system32\\cmd.exe /c custom.bat");
?>
于 2012-05-22T14:37:48.140 に答える
1

サーバーが Linux ベースであることを明確にしたので、Linux での正しいコマンドは次のとおりです。

/sbin/ifconfig -a

返されるデータは若干異なります

eth0      Link encap:Ethernet  HWaddr 00:00:00:00:00:00  
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: 0000::000:0000:0000:0000/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14141910 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6532919 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4462743134 (4.4 GB)  TX bytes:1340503018 (1.3 GB)
          Interrupt:22 Memory:f6ae0000-f6b00000 
于 2012-05-22T14:44:54.020 に答える
1

これは、クライアントではなく、サーバーのIP 情報のみを取得します。ローカル PC でコードを実行しているため、ローカル情報 (サーバー情報と同じ) が表示されます。

また、ホスト サーバーが Linux を実行している場合、コマンドは になりますがifconfig、それでもサーバー情報しか取得できません。

于 2012-05-22T14:39:24.763 に答える