错误: failed to open stream: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

来源:互联网 发布:心理学 书籍推荐 知乎 编辑:程序博客网 时间:2024/04/28 10:46


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

<?
        //$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
2007-1-30 09:48
补充一下 allow_url_fopen  是 on的.
2007-1-30 10:19
再补充一下,我们这里需要代理服务器.是不是应该也告诉apache  这个代理服务器呢??怎么告诉它呢?

怎么在apache内部设置一个代理服务器呢?
2007-1-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包.没有回包。怎么回事呢?
2007-1-30 11:05
应该是代理的问题吧..

不应该直接连接80端口 应该通过代理吧??
怎么办呢?
2007-1-30 11:26
找到一个解决办法.
以下内容为程序代码:

<?php

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

function proxy_url($proxy_url)
{
   $proxy_name = '10.0.16.12';
   $proxy_port = 80;
   $proxy_user = "";    // added
   $proxy_pass = "";    // added
   $proxy_cont = '';

   $proxy_fp = fsockopen($proxy_name, $proxy_port);
   if (!$proxy_fp)    {return false;}
   fputs($proxy_fp, "GET $proxy_url HTTP/1.0/r/nHost: $proxy_name/r/n");
   fputs($proxy_fp, "Proxy-Authorization: Basic " . base64_encode

("$proxy_user:$proxy_pass") . "/r/n/r/n");    // added
   while(!feof($proxy_fp)) {$proxy_cont .= fread($proxy_fp,4096);}
   fclose($proxy_fp);
   $proxy_cont = substr($proxy_cont, strpos($proxy_cont,"/r/n/r/n")+4);
   return $proxy_cont;
}
?>
 


这样虽然可以看到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做了什么了吗?怎么解决呢?
2007-1-30 13:19yueliangdao0608
全是LZ的帖子。
2007-1-30 15:444号HEROIN
自言自语
自问自答
2007-1-30 20:40Namelessxp
禁止直接IP访问,对方的问题
不过这又关代理什么事?
代理不至于把IP填到 Host: 里面去
2007-1-30 20:51taohui
楼主真强,以来就做了
还挂了一个奖牌!