天天看点

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

[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

楼主真强,以来就做了

还挂了一个奖牌!