到目前为止,我正在考虑使用ipify的phpapi来返回ip,但每次尝试都会返回我的网站ip。我想让它显示用户ip,我能做些什么来修复它?
这是代码:
<?php
$ip = file_get_contents('https://api4.ipify.org');
echo "My public IP address is: " . $ip;
?>
编辑:
我知道有这种方法
<?php
$ip = $_SERVER['REMOTE_ADDR'];
echo "My public IP address is: " . $ip;
?>
但是我更喜欢$_SERVER["HTTP_CF_CONNECTING_IP"]这样做,他们并不总是返回1pv4。有没有办法让它在不修改网站设置的情况下强制执行ipv4格式?
这样就可以了,不需要API访问用户的IP地址:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
echo "My public IP address is: " . $ip;
?>
不过,需要注意的是,这种方法将获得任何IP,因此,如果他们使用VPN或代理,你将获得该服务的IP。
尽管我最初不想修改网络设置,但我用cloudflare保护了我的网站,他们提供了"伪IPV4"选项,我将其设置为"覆盖标头",到目前为止,我还没有得到任何仅限ipv6的IPV4