如果没有可用的IPv6 DNS条目,PHP MAMP fsockopen将失败

时间:2017-02-04 13:19:12

标签: php mamp-pro

我对MAMP和尝试连接外部源的所有功能都有一个非常烦人的问题。

我的应用程序中有一个非常简单的fsockopen。

$fp = fsockopen($this->port == 443 ? 'ssl://' . $this->host : $this->host, $this->port, $errno, $errstr, 20);

这是我们的合作伙伴提供的lib。一切都被罚款,直到最后一次MAMP或OSX更新我不确定。

该行产生以下错误:

Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known

我已经阅读了很多关于该错误的内容,如果该名称未得到解决,则会出现该错误。所以我做了一些其他检查,问题似乎是ipv6解决方案。该站点没有IPv6 DNS-Entry,但连接尝试使用IPv6,出现该错误并且连接已关闭。

如果我在命令行上尝试相同的操作:

ping6: getaddrinfo -- nodename nor servname provided, or not known

我得到了同样的错误。那么,如果没有Name可用,为什么PHP不会回到IPv4?

禁用IPv6并不起作用。将v4地址添加到我的hosts文件没有任何影响。

1 个答案:

答案 0 :(得分:0)

好的,这个问题是由OSX测试版引起的。我做了一个新的OSX 12.3安装,它运行良好。