当客户端支持双栈ipv4 + ipv6时,获取用户ipv4

时间:2016-02-26 19:46:56

标签: javascript nginx ipv6 ipv4

所以我有一个带有php的NGINX网络服务器,我需要一种方法来强制所有客户端通过IPv4连接,如果他们有双栈IPv4 + IPv6,并且如果它们仅支持IPv6或仅支持IPv4,则仍然能够连接。 / p>

我该怎么做?

如果不可能,我是否可以使用java脚本获取客户端的IPv4(通过IPv6连接时)并将其发布到网址?

2 个答案:

答案 0 :(得分:3)

您无法控制客户端行为并将客户端推送到特定的IP地址是一个坏主意。客户端甚至可能在单个会话期间在协议之间进行更改。要么是因为他们的移动设备连接到不同的网络,要么是因为浏览器如何实现快乐的眼球标准。有许多不同的技术可用于将用户连接到IPv4和IPv6互联网,然后再次猜测他们选择的内容将以泪流满面。

只需通过两种协议均可访问您的服务并实施它,以便协议无关紧要。这是唯一可持续的解决方案。

答案 1 :(得分:0)

要获取用户的IPv4地址,请使用嵌入式JavaScript脚本查询只能由IPv4访问的内容。该脚本可以检查此请求是否有效。

......但你真的应该多次想到这是你想要做的事情。为什么不让您的用户使用IPv6?