Php 在Symfony2中获取客户端Ip
我已经搜索过了,但似乎找不到这个简单问题的答案: 我如何强迫symfony给我用户ip的ipv4版本,或者我遗漏了什么 我可以同时获得ipv4和ipv6吗 谢谢 编辑:我的问题不同,因为我没有尝试获取任何ip,我知道函数getClientIP(这就是为什么它出现在标题中),我希望函数返回ip的ipv4和ipv6版本。(或任何函数,任何同时获取ipv4和ipv6的方法) 编辑2:这就是我现在获得ip的方式:Php 在Symfony2中获取客户端Ip,php,symfony,Php,Symfony,我已经搜索过了,但似乎找不到这个简单问题的答案: 我如何强迫symfony给我用户ip的ipv4版本,或者我遗漏了什么 我可以同时获得ipv4和ipv6吗 谢谢 编辑:我的问题不同,因为我没有尝试获取任何ip,我知道函数getClientIP(这就是为什么它出现在标题中),我希望函数返回ip的ipv4和ipv6版本。(或任何函数,任何同时获取ipv4和ipv6的方法) 编辑2:这就是我现在获得ip的方式: public function getUserIp() { return $thi
public function getUserIp()
{
return $this->request->getClientIp();
}
它以独占方式返回ipv6。(此功能是从我自己的UserManager内部运行的,它在每次调用时检查并更新当前用户,方法是将事件插入控制器进入部分symfony管道)如果用户连接到IPv6,则没有IPv4地址可显示,反之亦然。您总是只能获得一个版本的IP
您能告诉我们您尝试了什么吗?编辑的可能重复,请解释。但用户同时具有ipv6和ipv4,对吗?什么决定了用户与哪个ip连接?服务器?不,服务器知道的IP地址是客户端连接的IP地址。通常,套接字的端点位于一个IP地址的一个端口上,而另一端只知道这些。要从客户端获取两个IP地址,客户端必须显式地将其发送给您。您的解释很有道理,而且可能是真的,但我遇到过这样一种情况,不知何故,我让symfony获取ipv4而不是ipv6,显然,仅获取其中一个(正如您所说,不可能同时获取这两个地址),但我不知道是什么让symfony获得ipv4。有没有办法打开/关闭每个请求的ipv6支持?很抱歉,让您感到困惑,很显然,您是对的,问题实际上是由我老板的错误造成的,或者可能只是笨拙,谁知道,他在Cloudflare中打开了“仅ipv6”选项。。。我的错。