Ich kann den Host in curl nicht festlegen. Es zeigt immer noch als localhost, wenn ich den folgenden Codekann Host in CURL nicht setzen PHP
function wget($url)
{
$agent= 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0.1';
$curlHeaders = array (
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding: gzip, deflate',
'Accept-Language: en-US,en;q=0.5',
'User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0.1',
'Connection: Keep-Alive',
'Pragma: no-cache',
'Referer: http://example.com/',
'Host: hostname',
'Cache-Control: no-cache',
'Cookie: visid_incap_185989=9v1q8Ar0ToSOja48BRmb8nn1GFUAAAAAQUIPAAAAAABCRWagbDIfmlN9NTrcvrct; incap_ses_108_185989=Z1orY6Bd0z3nGYE2lbJ/AXn1GFUAAAAAmb41m+jMLFCJB1rTIF28Mg==; _ga=GA1.3.637468927.1427699070; _gat=1; frontend=rqg7g9hp2ht788l309m7gk8qi7; _gat_UA-1279175-12=1; __utma=233911437.637468927.1427699070.1427699078.1427699078.1; __utmb=233911437.2.10.1427699078; __utmc=233911437; __utmz=233911437.1427699078.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmt_UA-1279175-1=1; _cb_ls=1; _chartbeat2=S0WVXDwMWnCFBgQp.1427699081322.1427699232786.1; PRUM_EPISODES=s=1427699568560&r=http%3A//example.com/'
);
$ch = curl_init();
curl_setopt ($ch, CURLOPT_HTTPHEADER, $curlHeaders);
curl_setopt ($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
return $result;
}
I fiddler
verwenden, um die Netzwerkanforderungen zu verfolgen. wo ich der Host gefunden ist nach wie vor als localhost
Wenn ich diesen gleichen Link in Browser laden i erhalten, wie in den folgenden fiddler
Ich brauche meine angegebene Domäne zugegriffen werden kann. Wie kann ich das erreichen? Hinweis: Mir ist bekannt, dass der Hostname das Protokoll nicht enthalten sollte.
Alternativ
Auch möchte ich wissen, ist es möglich, den Quellcode einer Website bekommen die in Browser über Terminal zu sehen war?
Ich würde vorschlagen, mit dem Hinzufügen von 'curl_setopt ($ ch, CURLOPT_VERBOSE, true);' zu Ihrem Code und überprüfen, was tatsächlich in der Backgo passiert und. Sie werden wahrscheinlich viel mehr Informationen bekommen als von Fiedler. –
Ich habe Ihren Code ausprobiert. Andere Datei empfängt Header 'Host: Hostname'.Ich denke, dass Sie so etwas brauchen, dass meine Website als "stackoverflow.com" maskiert wird, was schwierig ist. Sie können Header ändern, aber nicht HTTP-Protokoll (nicht einfach zu tun). – Kristiyan
Also habe ich das auf mehreren Hosts ausgeführt, auf die ich Zugriff habe, indem ich die URL in den Funktionsaufruf füttere und es läuft einwandfrei. Sie müssen einige Dinge überprüfen und weitere Informationen bereitstellen. 1) Wie wird diese URL in den Funktionsaufruf eingefügt, sind Sie sicher, dass sie richtig eingestellt ist? dh. wenn Sie $ result = wget ($ satururl) aufrufen; Stellen Sie sicher, dass $ someurl korrekt eingestellt ist. 2) Überprüfen Sie Ihre Hostdatei und Proxy-Einstellungen. – webternals