2010-08-05 7 views
5

En PHP, il existe une fonction de recherche inversée sur un nom de domaine pour savoir combien de sites Web sont hébergés sur le serveur d'hébergement partagé particulier sur lequel le nom de domaine est hébergé. Ou, un moyen de le faire avec PHP?Recherche IP inversée avec PHP

Maintenant, je suis déjà au courant des services en ligne qui offrent ceci. Cependant, je veux écrire un script pour le faire moi-même. Je ne peux pas le comprendre.

Toute suggestion qui ne suggère pas l'utilisation d'un service tiers serait formidable.

+2

Auparavant, cela était possible avec AXFR. Mais de nos jours, il est restreint entre chaque domaine faisant autorité et le serveur de noms secondaire. De même, il est rare de sortir des domaines configurés en utilisant les pages d'état Apache/l'accès au journal. Donc, pas de chance à moins que vous ne construisiez vous-même une énorme base de données ip-> domain. – mario

+0

Un seul serveur d'hébergement partagé peut avoir des adresses IP différentes pour chaque hôte virtuel. Je ne suis donc pas certain de la fiabilité et de l'utilité du rapport que vous obtiendrez. – stillstanding

Répondre

2

Il n'y a pas de façon infaillible de faire ce que vous demandez.

Dans DNS, l'adresse IP d'un site, telle que "1.5.7.9", lui a associé un nom de domaine comme "9.7.5.1.in-addr.arpa". Ce nom inverse peut avoir des enregistrements PTR pointant vers le nom de domaine. Ainsi, "example.com" peut correspondre à "1.5.7.9" avec un enregistrement A, et "9.7.5.1.in-addr.arpa" peut renvoyer à "example.com".

Une adresse IP peut avoir plus d'un enregistrement PTR. Mais, généralement, ils ne le font pas. Ainsi, la seule façon de connaître tous les noms de domaine qui partagent une adresse IP est de rechercher et de mémoriser tous les noms de domaine (ce qui n'est pas faisable), ou d'obtenir l'information d'une autre source.

En outre, un ordinateur donné peut avoir plusieurs adresses IP. Il n'y a aucun moyen de savoir combien.

0

Je suis curieux de savoir comment tout le monde le sait: les sites Web hébergés peuvent aller et venir assez rapidement sur les adresses IP. Il est facile d'ajouter quelques milliers de domaines cette minute et de les supprimer à nouveau la minute suivante. Avez-vous vu http://pink.bikeshed.com? Ou http://red.bikeshed.com? Ou http://white.bikeshed.com? Il serait super facile de l'étendre aux 754 entrées de mon fichier rgb.txt X11, même si cela ne semble pas être le cas. Peut-être que je me trompe, mais je pense que la façon de le faire est de faire de nouveaux sites web à la volée ...

0

interrogez chaque nom de domaine individuellement et stockez l'adresse IP correspondante. Lorsqu'une personne interroge un domaine/une adresse IP, il suffit d'afficher tous les autres domaines partageant la même adresse IP. Si le domaine n'est pas encore répertorié, il suffit de résoudre l'adresse IP et de la stocker.

Il serait également assez facile (et relativement rapide) pour résoudre le problème @sarnold mentionné, en mettant simplement à jour tous les domaines qui sont dans la même adresse IP du domaine interrogé - ou juste le domaine lui-même, peut-être avec une limite de 1 mise à jour par jour ou quelque chose comme ça.

4

il est en mesure ... faire le programme échantillon qui l'utilisent est en Python que je sais darkjumper

Je ne sais pas comment cela fonctionne, mais il fonctionne .. vous pouvez lire le code source Python et réécrire le logiciel en php

Vous pouvez exécuter la fonction inverse ip de ce logiciel en utilisant l'option -m reverseonly

./darkjumper.py -t stackoverflow.com -m reverseonly résultats retour

[+] Target set : stackoverflow.com 
[+] Use proxy : None 
[+] Verbocity : False 
[+] Trying reverse your target's ip... 
[+] Please wait... 
----------------------------------------- 
http://stackoverflow.com 
http://gadgets.stackexchange.com 
http://webmasters.stackexchange.com 
http://stats.stackexchange.com 
http://gaming.stackexchange.com 
http://gamedev.stackexchange.com 
http://photo.stackexchange.com 
http://cooking.stackexchange.com 
http://chat.meta.stackoverflow.com 
http://stackoverflow.com 
http://stackoverflow.com 

---------------------------------------- 
[+] Found : 12 Domains hosted at this IP 
---------------------------------------- 
+0

Ne fonctionne pas toujours. Hypothèse assez sophistiquée, cependant :-). – Borealid

+0

@Borealid: D'après ce que j'ai compris, il essaie simplement de suivre les 50 premiers liens du domaine et de les faire correspondre avec l'adresse IP? Cela ne semble pas très "sophistiqué". –

+0

@Alix Axel: Comme je l'ai dit, devinettes sophistiquées. C'est plus intelligent que de simplement lire l'enregistrement PTR, mais avec des serveurs virtuels pour des domaines non liés, il n'en obtiendrait pas d'un autre. – Borealid

6

En PHP il suffit d'utiliser

$domain = gethostbyaddr($ip); 

bonne chance!

+0

nice .. cela devrait être la réponse. – Drmjo

+0

@Drmjo Cela ne fait pas réellement ce que l'OP a demandé donc non ce ne devrait pas être la réponse – RiggsFolly

+0

@RiggsFolly vous avez raison je l'ai eu en arrière ... mais cette fonction a résolu mon problème ... – Drmjo