2017-02-22 54 views
0

我在智慧的结尾。我为最近一直在研究的项目(这是为了学校)设立了一个LAMP服务器。 我想用我的服务器使用curl从PHP获取公共IP地址。我使用下面的代码来获得它:Ubuntu服务器 - 即使指定了其他网站,PHP curl也会在服务器上查找地址

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_URL, "http://ipecho.net/plain"); 

$host = curl_exec($ch); 
curl_close($ch); 

它对我的家用电脑上的本地主机效果很好。可悲的是,Ubuntu服务器不符合。当我呼应的结果,我得到一个格式化的消息说:

NOT FOUND: The request URL "/plain/" was not found on this server. 

我真的不知道这里做什么。 cURL也应该工作,我已经安装了正确的软件包。

旁注:

我已经通过file_get_contents()(也工作我家电脑上),也试过,但在服务器上,它只是返回以下消息:

Warning: file-get-contents("http://ipecho.net/plain") failed to open stream: HTTP request failed! HTTP/1.1 202 

难道这两件事情涉及到一样的问题?

+0

http://stackoverflow.com/questions/ 16748206/php-can not-access-external-urls 尝试设置allow_url_fopen – tjfo

+0

默认情况下它已被启用。我忘了提及在发布这个问题之前我已经去检查它是否启用。 ^^ – Naldorenses

回答

0

听起来像网络可能不起来。我会检查是否

的wget -O- http://ipecho.net/plain

从Ubuntu外壳的作品。

如果不工作检查resolv.conf的,以确保你有DNS工作,并检查您的网络脚本,以确保您有IP网关设置正确

+0

你好,谢谢你的回答!不幸的是,这是完全不同的,我偶然发现了一些事情。事实证明,我使用的外部服务在默认情况下与ubuntu不兼容(这可以解释为什么它在Windows上工作,而不是在Ubuntu上)。至少这就是我在终端上使用cURL的地址时所说的。 我切换到另一个服务“checkip.amazonaws.com”。 还是谢谢! :d – Naldorenses