首页 > 解决方案 > 使用 PHP exec() 获取更新信息的问题

问题描述

我有简单的代码,它使用 exec() 设置带有一些系统信息(如当前 IP)的变量。我执行代码并显示信息。我更改了计算机的 IP 地址并重新运行代码。我在执行代码之前使用 unset() 清除变量,但是,它仍然显示旧信息。如何使用 exec() 获取当前信息?在此先感谢并为菜鸟感到抱歉。

  <button type="button" class="btn btn-info btn-lg" onclick="showip()">Get IP</button>

  <script>
  function showip(){
     <?php
        unset($return);
        unset($ip);
        exec('wget https://ipinfo.io/ip -qO -', $return);
        $ip = $return[0];
     ?>
     curip = <?php echo(json_encode($ip, JSON_HEX_TAG)); ?>;
     alert("The current IP is "+curip);
   }
  </script>

标签: php

解决方案


PHP 在服务器上运行,这就是为什么您总是获得相同的 IP 地址。

如果您想要客户端的 IP 地址,您可以使用

$_SERVER["REMOTE_ADDR"]

'REMOTE_ADDR'

用户查看当前页面的 IP 地址。

另一种解决方案https://ipinfo.io/ip.

function showip() {
    fetch("https://ipinfo.io/ip")
    .then(function(response) {
        return response.text()
    })
    .then(function(ip) {
        alert("The current IP is " + ip)
    })
}

推荐阅读