我有以下脚本:
[][][]
[][][] [][][]
[][] [][]
[] [][]
[] []
[] [][]
[][] [][][][][]
[][] [][][]
[] []
[][] []
[][][] []
[] [][]
[][] []
[] [][][]
[] []
[] [][]
[] []
[] []
[][] []
[][] []
[][] [] []
[][][] [][][] []
[][][][] [][] [][]
[][][] [][][]
[][][]
它返回了:
$con = @fsockopen('mx.mydomain.com', 587, $errno, $errstr, 10);
if(empty($con)) echo "Not connected: ".$errno." - ".$errstr;
else echo "Connected!";
使用任何域发生,但如果我在/ etc / hosts中输入IP或定义则不会发生。 resolv.conf的:
Not connected: 110 - Connection timed out
我试过告诉其他DNS服务器但仍然存在。 ping工作正常。 我不知道还能在哪里解决它。
PHP 5.4 / NGINX 1.8 / CentOS 6.6
答案 0 :(得分:1)
根据a conversation with @rdlowrey显示:
gethostbyname()
无法解析IPv6记录,这是 如果您在URI中传递实际域名,PHP会使用什么。 在这种情况下,用户需要直接指定IP。这意味着他们应该:
- 首先尝试gethostbyname()以查看它是否可以解析IPv4地址。
- 如果失败(并且将在此用户的情况下),他们应手动使用带有DNS_AAAA常量的
醇>dns_get_record()
来表示IPv6
来自源代码的相关代码可以找到gethostbyname()
由PHP在内部用于解析URI中的主机名,可以找到here。