Run ipconfig command with php

前端 未结 3 1396
醉梦人生
醉梦人生 2021-01-22 05:34

I use this code to understand some information of visitors (clients). It has been running on my virtual server on Xampp, but I can`t run on my main server (host). I see just a b

相关标签:
3条回答
  • 2021-01-22 06:01

    Well, since you clarified that the server is linux based, the correct command on linux is

    /sbin/ifconfig -a
    

    The data returned will look slightly different

    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 
    
    0 讨论(0)
  • 2021-01-22 06:03

    This would only get the servers IP information not the client. Because you are running the code on your local PC you will see your local information (which will be the same as the server information).

    Also if your hosts server is running linux, the command would be ifconfig, but that would still only get the server information.

    0 讨论(0)
  • 2021-01-22 06:04

    this might help you

    Server IP

    You can get the server IP address from $_SERVER['SERVER_ADDR'].

    Client IP address

    You can get the client IP from $_SERVER['REMOTE_ADDR']

    Edit: you ask in comments how to get the output of an external command - one way is to use backticks, e.g.

    $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];
       }
    }
    

    But what if the client isn't on a LAN?

    Well, you're out of luck unless you can have the client volunteer that information and transmit via other means. See Peter G Mac's suggestion for using Javascript.

    you can also try following command

     <?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");
    ?>
    
    0 讨论(0)
提交回复
热议问题