可靠的方法来确定PHP的编译版本是否支持IPv6?

时间:2017-09-17 18:02:12

标签: php ipv6

确定所使用的PHP编译版是否支持IPv6的可靠方法是什么?

我原以为这会更直接。

  • 我第一次遇到this post
  • 然而,在测试PHP 7.1之后,结果与我的预期相反。
  • 然后我遇到了这个PHP bug post
  • 然后我运行了这个完全没有输出的代码。
 if (extension_loaded('sockets')) {echo 'sockets and maybe IPv6?';}
 else {echo 'No sockets, so...no IPv6?';}

是启用还是禁用套接字似乎不会阻止此PHP版本使用IPv6,所以我回到了起点。

那么什么是可靠的方法来确保PHP支持IPv6?可接受的答案必须触发任何级别或错误或警告。

1 个答案:

答案 0 :(得分:0)

我只是将其移出评论部分

只有在加载了套接字扩展时,才能检查是否定义了AF_INET6。所以代码逻辑就像这样

if (extension_loaded('sockets')) {
   if (defined('AF_INET6'))
      echo "IPv6 is supported";
   else
      echo "IPv6 is disabled";
} else {
   echo "Can't determine if IPv6 is supported";
}