天天看點

錯誤: 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

樓主真強,以來就做了

還挂了一個獎牌!