Non riesco a impostare l'host in arricciatura. Si mostra ancora come localhost se io uso il seguente codicecan set Host in 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;
}
Io uso fiddler
per tenere traccia delle richieste di rete. dove ho trovato il padrone di casa è ancora come localhost
Se carico questo stesso link in del browser ottengo come segue in fiddler
ho bisogno del mio dominio specificato a cui accedere. Come posso raggiungere questo obiettivo? Nota: sono consapevole che il nome host non deve contenere il protocollo.
alternativa
Inoltre vorrei sapere è possibile ottenere il codice sorgente di un sito web potrebbe essere visto in del browser attraverso il terminale?
Vorrei suggerire di iniziare con l'aggiunta di 'curl_setopt ($ ch, CURLOPT_VERBOSE, true);' al codice e controllare cosa sta effettivamente accadendo nel backgo und. Probabilmente otterrai molte più informazioni rispetto al violinista. –
Ho provato il tuo codice. L'altro file riceve l'intestazione 'Host: hostname'.Penso che tu abbia bisogno di qualcosa del genere per mascherare il mio sito web come "stackoverflow.com", che è difficile da fare. È possibile modificare le intestazioni, ma non il protocollo HTTP (non facile da fare). – Kristiyan
Quindi l'ho eseguito su diversi host a cui ho accesso inserendo l'url nella chiamata alla funzione e funziona perfettamente. È necessario controllare alcune cose e fornire maggiori informazioni. 1) Come viene inserito l'URL nella chiamata alla funzione, sei sicuro che sia impostato correttamente. vale a dire. se chiami $ result = wget ($ someurl); Assicurati che $ someurl sia impostato correttamente. 2) Controlla le impostazioni del file host e del proxy. – webternals