Simulant ser Google amb PHP

Sovint m’ha passat que si visites un seti massa vegades et bloquegen. Aquest cap de setmana vaig fer una prova i va resultar: cap webmestre banejaria a Google!

Amb aquestes senzilles línies de codi pots fer que el teu script de PHP s’identifiqui com a Googlebot i per tant es passi per alt força restriccions:


	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_HEADER, 1);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_USERAGENT, 'Googlebot/2.1 (http://www.googlebot.com/bot.html)');
	$contingut=curl_exec($ch);
	curl_close($ch);
	echo $contingut;

Per als webmestres, amb un senzilla línia pots comprovar si realment un ‘User Agent’ Googlebot és o no:


  $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  if ( substr($host, (strlen($host)-13)) == 'googlebot.com' ) {
     // és Googlebot
  }

oriol

oriol wrote 1166 posts

Post navigation

  • Javier

    Alguna idea per evitar un bloqueig per IP?

  • Oriol Morell i Jané

    Uf, emprar un proxy? Amb quelcom així:

    
    	$ch = curl_init();
    	curl_setopt($ch, CURLOPT_URL, $url);
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    	curl_setopt($ch, CURLOPT_HEADER, 1);
    	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    	curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
    	curl_setopt($ch, CURLOPT_PROXY, 'proxy.com:8080');
    	curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'usuari:password');
    	$contingut=curl_exec($ch);
    	curl_close($ch);
    	echo $contingut;