Lister les sites web hébergés sur une même IP

écrit par Aymeric

gasy-qui-es-tuLe script PHP de cet article fait suite à une petite déception du site spyonweb.com dans le jeu du moment des SEO à savoir: "Qui est Gasy?" (mystérieux blog SEO pertinent et décalé qui a fait son apparition récemment).
Ma première démarche a été de vérifier la liste des autres sites hébergés sur le même serveur que gasymagnifik.com, la réponse de SpyonWeb m'ayant laissé sur ma faim... J'ai donc allié quelques lignes de code et une commande du moteur de recherche Bing afin d'avoir plus de réponses.

Spyonweb vs mes interrogations

Pour ceux qui ne connaissent pas encore Spyonweb, ce site doté d'une bien belle base de données qui permet de connaître la liste des sites web hébergés sur une même adresse IP (ce qui est pratique quand on fait du netlinking où l'on tentera d'avoir de nombreux liens en provenance d'IP différentes) mais aussi de trouver l'ensemble des sites qui utilisent le même code UA de Google Analytics (sites Web du même propriétaire/webmaster à priori).
spyonweb
La réponse me semblant incomplète probablement parce que les mises à jour de ce site sont trop espacées, j'ai utilisé la commande "ip:" de Bing qui m'a retourné un peu plus de réponses. Je me suis donc lancé dans ce script, ça pourra toujours servir!

Comment ça marche?

On va récupérer l'adresse IP d 'un nom de domaine pour ensuite lancer une boucle sur les page de résultats de Bing avec la requête suivante:
ip:123.45.67.89 -site:1erdomainetrouvé.com -site:2emedomainetrouvé.com -site:3emedomainetrouvé etc.... jusqu'à ce que Bing ne retourne plus de résultats et dans la limite de la longueur max. d'une requête sur Bing.
J'ai ajouté deux colonnes avec la possibilité pour chaque domaine trouvé de faire un Whois et d'aller voir du côté de la WayBack Machine

Le script

Voilà le script, il ne vous reste plus qu'à le mettre dans un fichier .php et à appeler la page.
Attention, il n'est pas complètement fini parfait, sur une IP d'un gros serveur mutualisé, il doit devenir fou et planter... (vous allez bien améliorer ça non?)
Niveau HTML, je ne me suis pas trop foulé, libre à vous de le relooker 🙂

<?
function getndd($value){
$url=parse_url('http://'.$value);
return $url['host'];
}
function getDomValue($html, $path){
	$dom = new DOMDocument();
	@$dom->loadHTML($html);
	$xp = new DOMXPath($dom);
	$nodeList = $xp->query($path);
	$tab = array();
	foreach($nodeList as $domElement){
		$tab[] = getndd($domElement->nodeValue);
	}
	return $tab;
}
function nddsameip ($ip)
{
        $path='/html/body/div/div/div[2]/div[3]/div/div[2]/div/div/div/div[2]/ul/li/div/div[2]/cite';
        $requete = '';$domaine = '';$i=0;$j=0;
        $useragent='Opera/9.63 (Windows NT 5.1; U; fr) Presto/2.1.1';
        do {
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
                curl_setopt($ch, CURLOPT_URL,'http://www.bing.com/search?count=50&q=ip%3A'.$ip.$requete);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
                $result = curl_exec ($ch);
                $matches[1] = getDomValue($result, $path);
                $matches = array_unique($matches[1]);
				//$tata .= print_r($matches).$result;
                        foreach (($matches) as $key => $domaine) {
                        if (!eregi('site:'.$domaine,$requete)) {
                        $j++;
                        $requete .= '%20-site:'.$domaine;
						 $lignes .= '<tr><td>'.$domaine.'</td><td><a href="http://wayback.archive.org/web/*/http://'.$domaine.'" target="_blank">WayBackMachine</td><td><a href="http://whois.domaintools.com/'.$domaine.'" target="_blank">Whois </a></td></tr>';
                        $export .= $domaine."\n";}
                        }
                sleep(1);
                $i++;
		if(eregi('no_results',$result)) $i=1000;
				
        }
        while ($i<50) ;
        file_put_contents($ip.'.txt',$export);
        $output = '<br /><br /><table class="form"><tr><td colspan="3" align="center"><b>Liste des '.$j.' noms de domaines sur '.$ip.':</b></td></tr><tr><td><b>Domaine</b></td><td><b>WayBackMachine</b></td><td><b>Whois</b></td></tr>'.$lignes.'<tr><td colspan="3"><br />T&eacute;l&eacutecharger l\'export (clic droit): <a href="'.$ip.'.txt">'.$ip.'.txt</a></td></tr><tr><td colspan="3"><br /><u>R&ecirc;quete Bing effectu&eacute;e:</u> <a href="http://www.bing.com/search?q=ip%3A'.$ip.$requete.'" target="_blank">http://www.bing.com/search?q=ip%3A'.$ip.str_replace('%20',' ',$requete).'</a></td></tr></table><br /><br /><br />';
return $output;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Lister les sites Web h&eacute;berg&eacute;s sur la même IP</title>
<style type="text/css">
* { margin: 0; padding: 0; }
html { height: 100%; font-size: 62.5% }
body { height: 100%; background-color: #FFFFFF; font: 1.2em Verdana, Arial, Helvetica, sans-serif; }
table.form { margin-left: auto;  margin-right: auto;margin-top:50px; width:500px;border-collapse: collapse; border-width:1px;  border-style:solid;  border-color:black; }
table.form td { padding: 4px 5px; font-weight: normal;border-bottom: 1px solid #000000; line-height:15px;}
table.form label { font-family: Verdana, Arial, Helvetica, sans-serif; color: #181818; margin-right: 12px; }
table.form input { width: 340px; }
table.form input.inp-text { border: 1px solid #3E3E3E; padding: 2px; background-color: #3F3F3F; color: #FFFFFF; }
table.form td.submit-button-center { text-align: center !important; }
table.form input.submit-text { font: 1.4em Georgia, "Times New Roman", Times, serif; letter-spacing: 1px; width: auto; }
</style>
</head>
<body>
<br><br><h1 align="center">Inspecteur IP/sites Web</h1>
<?
if (isset($_POST["domaine"]) && $_POST["domaine"]!='')
{
print nddsameip(gethostbyname(strip_tags($_POST["domaine"])));
}
else {?>
	<form action="<?print $_SERVER['PHP_SELF'];?>" method="post">
		<table class="form">
			<tr>
				<td><strong>Trouver d'autres site sur le m&ecirc;me serveur que le domaine:</strong></td>
			</tr>
			<tr>
				<td><input class="inp-text" name="domaine" id="domaine" type="text" size="20" /></td>
			</tr>
			<tr>
				<td class="submit-button-center" colspan="3"><i>ex: www.gasymagnifik.com</i><br><input class="submit-text" type="submit" value="Vas-y pépère!" /></td>
			</tr>
		</table>
	</form>

</body>

<?}?>

Conclusion:
- ce script m'a été complètement inutile pour son but initial... je n'ai toujours pas trouvé Gasy, et c'est tant mieux! (enfin j'ai une piste sérieuse... "y'a trop de suspense!")
- je savais parfaitement que je ne trouverais pas Gasy comme ça, ça aurait été le sous-estimer;-)
- longue vie à Mr #GasyMagnifik et son blog
- ce script peut être utile dans uns stratégie de netlinking pour varier les IP

écrit dans Scripts SEO par Aymeric | 23 commentaires

23 commentaires "Lister les sites web hébergés sur une même IP"

  • John Doe dit:
  • Ethno Urban dit:
  • 512banque dit:
  • Jice dit:
  • Gasy, SEO et mauvaise humeur dit:
  • La zik SEO du jour "this is the end" dit:
  • Emmanuelle dit:
  • lionel dit:
  • DjibouTeaM dit:
  • Ed dit:
  • Jeremy dit:
    • Aymeric dit:
  • TiPi Com and Web dit:
  • Soul dit:
  • Eric dit:
  • alex dit:
  • L'actualité du surf dit:
  • patrick dit:
    • Aymeric dit:
  • Guillaume dit: