PHP-php curl或者file_get_content 获取非80端口远程内容

发布于 2017-05-14 07:50:06 字数 1038 浏览 1582 评论 1

这种情况是什么问题?
本地环境和虚拟主机空间环境,相同代码结果不同
具体表现为:php使用file_get_content()函数或者curl()获取远程地址结果不同
环境1:本地win7+xampp(php集成环境)
脚本:test.php
操作:浏览器访问localhost/test.php
结果:可以获取内容

环境2: 虚拟主机+linux系统
操作:浏览器访问虚拟主机http://40036.vhost11.cloudvhost.net/test.php
结果:无法获取内容(备注:url如果不带端口,可以获取内容,说明该函数没有被禁用)

环境3:浏览器直接访问http://xxxx.com:443
结果:显示内容正常

具体代码:
<?php
error_reporting(E_ALL);

//本地环境有效,测试环境虚拟主机无效
//url带443端口
$url = 'http://k.btc123.com:443/period?step=900&sid=df250905&symbol=btcchinabtccny&mode=simple&nonce=1396124044571';

//(备注:url如果不带端口,可以获取内容,比如www.baidu.com,说明该函数没有被禁用)
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//网上有说curl获取https的时候,要加下面语句
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

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

echo($output);
?>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晚风撩人 2017-05-19 03:48:32

猜测是btc123会根据sid参数限制IP地址访问,也许是把IP哈希得到一个sid。

你的代码里的那个url,在我这里访问也是空白。但是我上k.btc123.com,然后拿到了这个url(http://k.btc123.com:443/period?step=900&sid=d776513d&symbol=bitstampbtcusd&mode=simple&nonce=1396185550507)就可以访问,然后我在其他IP地址访问就没有内容。

试一下先抓取http://k.btc123.com/,拿到页面里的sid,然后再抓取http://k.btc123.com:443/period。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文