首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >显示ipv4 ipv6的PHP函数

显示ipv4 ipv6的PHP函数
EN

Stack Overflow用户
提问于 2015-10-19 20:25:02
回答 1查看 1.6K关注 0票数 2

我正在将服务器配置为双堆栈,同时允许ipv4和ipv6。然后,我想创建一个php页面来显示客户端机器是通过ipv4、ipv6还是两者都连接。

我也尝试过$_SERVER‘’REMOTE_ADDR‘和getenvbyhost("REMOTE_ADDR"),但它只返回一个或另一个,永远不会同时返回。

我还尝试了下面的代码

代码语言:javascript
运行
复制
 function isIPv6($ip) {

   if(filter_var($ip, FILTER_VALIDATE_IP)) {

     if(filter_var($ip, FILTER_FLAG_IPV6)) {
       //It is IPv6 indeed.
     } else {
       //It is IPv4
     }

   } else {
     // Not a valid IP
   }
}

是否可以从服务器获取两个ips?

EN

回答 1

Stack Overflow用户

发布于 2015-10-19 20:39:30

每个传入请求都使用IPv4或IPv6,但不能同时使用两者。如果您想知道两者,那么您需要使用不同的协议触发到您的服务器的多个连接。

最常见的方法是创建两个额外的主机名:一个只包含服务器的IPv4地址,另一个仅包含服务器的IPv6地址。然后,对于您的回复(假设是HTML),您将生成一个唯一的代码,并在页面中包含两个隐藏的图像。一个使用仅IPv4主机名,另一个使用仅IPv6主机名。它们都包含您在URL中生成的唯一代码,这样客户机就不会缓存图像,您就可以看到哪些图像请求属于一起。

这是一个相当麻烦的问题,而且对于大多数目的来说,不值得花这么大力气。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33214331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档