Nie mogę ustawić hosta w curl. Nadal pokazuje jak localhost jeśli używam następujący kodcant set Host w CURL 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;
}
używam fiddler
śledzić żądania sieciowe. gdzie znalazłem gospodarz jest nadal jako localhost
Gdybym załadować ten sam link w przeglądarce otrzymuję następujący w fiddler
Potrzebuję określoną domenę, aby uzyskać dostęp. Jak mogę to osiągnąć? Uwaga: jestem świadomy, że nazwa hosta nie powinna zawierać protokołu.
Alternatywnie
Również chciałbym wiedzieć, czy jest możliwe, aby uzyskać kod źródłowy stronie internetowej mogą być widoczne w przeglądarce za pośrednictwem terminala?
Proponuję zacząć od dodania 'curl_setopt ($ ch, CURLOPT_VERBOSE, true);' do twojego kodu i sprawdzenia co się dzieje w backgo und. Prawdopodobnie otrzymasz znacznie więcej informacji niż od skrzypka. –
Próbowałem twojego kodu. Inne nagłówki odbioru pliku 'Host: hostname'.Myślę, że potrzebujesz czegoś takiego, aby moja strona internetowa była maskowana jako "stackoverflow.com", co jest trudne. Możesz modyfikować nagłówki, ale nie protokół HTTP (nie jest to łatwe). – Kristiyan
Więc uruchomiłem to na kilku hostach, do których mam dostęp, podając adres URL do wywołania funkcji i działa bezbłędnie. Musisz sprawdzić kilka rzeczy i podać więcej informacji. 1) W jaki sposób adres URL jest podawany do wywołania funkcji, czy masz pewność, że jest ustawiony prawidłowo. to znaczy. jeśli zadzwonisz $ result = wget ($ someurl); Upewnij się, że $ someurl jest ustawione poprawnie. 2) Sprawdź ustawienia hosta i serwera proxy. – webternals