php_network_getaddresses: getaddrinfo failed: Name or service not known
这是我的代码片段
当我运行它时,它输出:
unable to connect to www.mydomain.net/1/file.php:80 (php_network_getaddresses: getaddrinfo failed: Name or service not known
我正在使用它来将GET数据提交到
我不知道为什么。 任何帮助将不胜感激。
您不能使用
如果您尝试访问远程URL,那么file_get_contents()是最好的选择。您可以提供该功能的完整URL,它将使用普通的HTTP请求在该位置获取内容。
如果只想发送HTTP请求而忽略响应,则可以使用
1 2 3 4 5 6 7 8 |
当然,这会让您处理任何错误,但这意味着您不会浪费时间阅读响应。
我在本地测试服务器和本地testdomains上遇到了类似的问题,例如:www.testdomain.loc,其功能为
通过在本地服务器上的hosts文件中添加主机名来解决该问题:
在文件/ etc / hosts中,我添加了:
1 | 192.168.1.1 www.testdomain.loc |
希望这对任何人有帮助
如果只想将GET数据提交到URL,则应使用诸如file_get_contents();之类的简单方法。
1 2 |
遇到了这样的问题(使用https://github.com/PHPMailer/PHPMailer),只需重新加载PHP即可开始一切正常
对于Centos 6和7:
1 | service php-fpm restart |
1 2 3 | $url ="http://user:[email protected]/abc.php?var1=def"; $contents = file_get_contents($url); echo $contents; |
您正在尝试打开不正确的远程主机上文件的套接字。您可以建立到远程主机上端口号的套接字连接(TCP / UDP)。因此您的代码应如下所示:
1 |
如果您尝试创建指向远程文件的文件指针资源,则可以使用fopen()函数。但是要这样做,您还需要指定应用程序协议。
PHP为URL文件打开提供了默认的流包装。根据URL的架构,将在内部调用适当的流包装器。您尝试打开的URL没有适用于此解决方案的有效架构。确保其中包含类似" http://"或" ftp://"的架构。
所以代码是这样的:
1 |
此外,我不认为HTTP流包装器(使用HTTP模式处理URL上的文件资源上的操作)支持数据写入。您可以使用fread()通过HTTP读取URL的内容,但是我不确定是否要编写。
编辑:
从注释和其他答案中我发现您希望将HTTP请求发送到指定的URL。
该答案中描述的方法适用于您希望从远程URL接收数据的情况。如果要发送数据,可以使用http_request()进行此操作。
以我为例,此错误是由debian上的/etc/nsswitch.conf配置错误引起的。
我已被替换为字符串
1 | hosts: files myhostname mdns4_minimal [NOTFOUND=return] dns |
与
1 | hosts: files dns |
现在一切正常。
我遇到了fsocket()相同的错误,我刚刚更新了主机文件
类型
希望它能解决您的问题
如有任何疑问,请在http://kingologic.com上ping我
简单来说,您的网站已被阻止访问网络。 可能是您已经自动化了一些脚本,并导致整个网站被封锁。 解决此问题的更好方法是联系该网站并告知您的问题。 如果问题是真实的,他们可能会考虑取消阻止
尝试设置ENV PATH。将PHP路径添加到ENV PATH。
为了使此扩展名起作用,必须有Windows系统PATH可用的DLL文件。有关如何执行此操作的信息,请参见标题为"如何在Windows上将我的PHP目录添加到PATH"的FAQ。尽管也可以将DLL文件从PHP文件夹复制到Windows系统目录中(因为默认情况下系统路径是系统路径中的系统目录),但不建议这样做。此扩展要求以下文件位于PATH中:libeay32.dll
http://php.net/manual/en/openssl.installation.php