免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2250 | 回复: 9
打印 上一主题 下一主题

[url] 下载其它网站的网页 不成功啊. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-30 09:37 |只看该作者 |倒序浏览
<?
        //$url = "http://localhost/index.php";
        $url = "http://bbs.chinaunix.net/index.php";
        $str = file($url);
        echo $str;
?>

上述代码 如果去掉注释,下载localhost 下的index.php就好用. 如果编程其它外来的网站就不好用.

我怀疑是apache 或者PHP 无法解析域名.是这样吗?应当怎么做呢?

运行一段时间报错如下:

Warning: file(http://www.163.com) [function.file]: failed to open stream: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 in D:\Program Files\Apache Group\Apache2\htdocs\web\test.php on line 4

Fatal error: Maximum execution time of 30 seconds exceeded in D:\Program Files\Apache Group\Apache2\htdocs\web\test.php on line 4

论坛徽章:
0
2 [报告]
发表于 2007-01-30 09:48 |只看该作者
补充一下 allow_url_fopen  是 on的.

论坛徽章:
0
3 [报告]
发表于 2007-01-30 10:19 |只看该作者
再补充一下,我们这里需要代理服务器.是不是应该也告诉apache  这个代理服务器呢??怎么告诉它呢?

怎么在apache内部设置一个代理服务器呢?

论坛徽章:
0
4 [报告]
发表于 2007-01-30 11:02 |只看该作者
C:\Documents and Settings\Administrator>nslookup bbs.chinaunix.net
Server:  ms010pc2.cnc.intra
Address:  10.0.16.2

Non-authoritative answer:
Name:    bbs.chinaunix.net.fastcdn.com
Address:  60.28.166.83
Aliases:  bbs.chinaunix.net

netstat -an 发现.

10.0.72.78:2054        60.28.166.83:80        SYN_SENT

也就是只发了SYN_SENT包.没有回包。怎么回事呢?

论坛徽章:
0
5 [报告]
发表于 2007-01-30 11:05 |只看该作者
应该是代理的问题吧..

不应该直接连接80端口 应该通过代理吧??
怎么办呢?

论坛徽章:
0
6 [报告]
发表于 2007-01-30 11:26 |只看该作者
找到一个解决办法.

  1. <?php

  2. //$cont = proxy_url('http://weather.tq121.com.cn/detail.php?city=大连');
  3. $cont = proxy_url('http://bbs.chinaunix.net');
  4. echo $cont;

  5. function proxy_url($proxy_url)
  6. {
  7.    $proxy_name = '10.0.16.12';
  8.    $proxy_port = 80;
  9.    $proxy_user = "";    // added
  10.    $proxy_pass = "";    // added
  11.    $proxy_cont = '';

  12.    $proxy_fp = fsockopen($proxy_name, $proxy_port);
  13.    if (!$proxy_fp)    {return false;}
  14.    fputs($proxy_fp, "GET $proxy_url HTTP/1.0\r\nHost: $proxy_name\r\n");
  15.    fputs($proxy_fp, "Proxy-Authorization: Basic " . base64_encode ("$proxy_user:$proxy_pass") . "\r\n\r\n");    // added
  16.    while(!feof($proxy_fp)) {$proxy_cont .= fread($proxy_fp,4096);}
  17.    fclose($proxy_fp);
  18.    $proxy_cont = substr($proxy_cont, strpos($proxy_cont,"\r\n\r\n")+4);
  19.    return $proxy_cont;
  20. }
  21. ?>
复制代码


这样虽然可以看到bbs.chinaunix.net的了.但是不能看上面这个URL的..

$cont = proxy_url('http://weather.tq121.com.cn/detail.php?city=大连');


请问如何解决啊??

我nslookup weather.tq121.com.cn
地址是219.234.83.3

我直接换上IP 用IE浏览器访问都不可以, 是 weather.tq121.com.cn做了什么了吗?怎么解决呢?

论坛徽章:
0
7 [报告]
发表于 2007-01-30 13:19 |只看该作者
全是LZ的帖子。

论坛徽章:
0
8 [报告]
发表于 2007-01-30 15:44 |只看该作者
自言自语
自问自答

论坛徽章:
0
9 [报告]
发表于 2007-01-30 20:40 |只看该作者
禁止直接IP访问,对方的问题
不过这又关代理什么事?
代理不至于把IP填到 Host: 里面去

论坛徽章:
0
10 [报告]
发表于 2007-01-30 20:51 |只看该作者
楼主真强,以来就做了荣誉斑竹
还挂了一个奖牌!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP