Localhost'tan cURL yoluyla web sitesine erişemiyor, ama gelen sunucu barındırılan olabilir

2 Cevap php

PHP 5 ve cURL kullanarak, wowarmory.com XML verileri çeker bir senaryo yazıyorum:

$url = "http://www.wowarmory.com";
$userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12';

$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
curl_setopt($ch, CURLOPT_URL,$url);
$str  = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
$str .= "Accept-Language: en-us,en;q=0.5\r\n";
$str .= "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n";
$str .= "Keep-Alive: 300\r\n";
$str .= "Connection: keep-alive\r\n";
curl_setopt($ch, CURLOPT_HTTPHEADER, array($str));
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_TIMEOUT, 3000);
$xml = curl_exec($ch);

Benim barındırılan web sunucusu bu çalıştırdığınızda beklendiği gibi, ben XML yanıt almak. Benim localhost web sunucusundan çalıştırırken Ama, ben bir şey olsun.

Ben localhost (yahoo.com, hatta worldofwarcraft.com) den cURL üzerinden başka bir web sitesi olsun, ama wowarmory.com olabilir. Yani cURL düzgün çalıştığını biliyorum.

Ben PHP ve cURL aşağıdaki sürümlerini kullanıyorum:

Hosted Sunucu:

  • php 5.2.6
  • libcurl/7.16.1 OpenSSL/0.9.7e zlib/1.2.3 cURL

Localhost:

  • php 5.2.6
  • libcurl/7.16.0 OpenSSL/0.9.8i zlib/1.2.3 cURL

Herhangi bir fikir?

EDIT: Localhost Windows XP SP3 çalıştıran. Ben bir web tarayıcısı üzerinden wowarmory.com erişebilirsiniz. Tracert (Açıkçası, benim konumdan) hop 13 dışarı zamanlama başlar:

13   458 ms   529 ms   549 ms  0.so-6-0-0.BR1.LAX15.ALTER.NET [152.63.116.21]
14   476 ms   510 ms   488 ms  192.205.34.29
15   257 ms   279 ms   261 ms  cr1.la2ca.ip.att.net [12.122.128.14]
16   242 ms   259 ms   249 ms  gar5.la2ca.ip.att.net [12.122.128.25]
17   252 ms     *     1691 ms  12.122.255.74
18     *     2361 ms   634 ms  mdf001c7613r0003-gig-10-1.lax1.attens.net [12.129.193.242]
19     *        *        *     Request timed out.

Ne yazık ki, tcptraceroute aşina değilim.

Düzelene pencereleri ikili sürümü http://www.wowarmory.com/ için hiçbir şey geri gelmez ama gelmez için http://www.yahoo.com/

Ben mevcut wget var yok.

EDIT 2: Ben sadece iyi benim localhosted web sitesine erişebilirsiniz. Ben almıyorsunuz kıvrılma sadece yanıt bulunuyor. Ben XAMPP yüklemek oldukça çok varsayılan (Windows XP üzerinde apache 2) koşuyorum. Tüm bu iyi çalışır.

2 Cevap

Eğer bir web tarayıcısı üzerinden ya da curl veya wget komut satırı yardımcı programları aracılığıyla yerel bilgisayardan erişebilirsiniz?

Ne tcptraceroute ne anlatıyor?

Bir web tarayıcısı ne komut satırı yardımcı iş, ama tcptraceroute ne çalışıyor (ve bir yerde bir şekilde saydam proxy görünmüyor), ve bir DSL bağlantı arkasında iseniz, bu sizin sorun olduğunu mümkündür a PMTU blackhole. Bu durumda, geçici çözüm MSS clamping.

api muhtemelen geri bazı URL (diyelim nextUrl veya currentUrl) yanıtları verir. URL localhost veya bir yerel sistem IP adresi, nerede ve nasıl bir tepki API geri ..? ise Coz geri nextUrl () veya currentUrl için API irade yanıtı (). Yani çalışmak için kalıcı bir IP veya etki alanı adını kullanın lütfen.