php - 使用 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 在服务器上运行,这就是为什么您总是获得相同的 IP 地址。
如果您想要客户端的 IP 地址,您可以使用
$_SERVER["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)
})
}