2010-10-24 3 views
0

Je dois le faire avec PHP, peut-être avec un paquet de poire ou des fonctions internes php. Comment je peux faire ça?Je veux vérifier l'adresse IP au nom d'hôte et le nom d'hôte correspondant plages IP

Je sais que j'ai besoin de gethostbyname() pour la vérification du nom d'hôte, mais j'ai aussi besoin de la portée ip de ce fournisseur. exemple: ip: 5.7.8.9 hôte: usa fournisseur plage d'adresses IP 5.7.8.0-5.7.9.0

Est-il possible avec php?

+0

Cela ressemble à une requête whois. Je ne suis pas sûr que ce soit possible avec une simple recherche DNS. – Lekensteyn

Répondre

2

Il n'y a aucun moyen de voir avec précision les plages IP sans accès à BGP, mais si vous faites confiance aux FAI pour fournir les informations correctes, vous pouvez l'obtenir à partir de whois. Utilisez shell_exec ou similaire pour appeler le client whois en ligne de commande.

Je vous propose Heck pour ces étiquettes:

  • inetnum
  • NetRange
  • CIDR
  • itinéraire

Et peut-être plus. Whois n'est cependant pas toujours digne de confiance. C'est une base de données de texte sans format standard défini, de sorte que vous ne pouvez pas toujours obtenir une réponse utilisable, et vous ne savez pas toujours quoi chercher. Comme je l'ai dit, la solution la plus fiable consiste à obtenir un réel accès BGP afin de pouvoir vérifier le routage Internet réel. C'est plutôt avancé, alors peut-être qu'il y a un service web que vous pouvez utiliser pour les recherches de routage?

Modifier J'ai trouvé ce projet, qui fournit une API pour les requêtes BGP: http://www.routeviews.org/

Il existe deux sous-domaines de TXT reconds dans routeviews.org, asn et aspath. asn.routeviews.org cartes (résout) une adresse IPv4 inversée ou préfixe (par exemple: 128.223 -> 223.128.asn.routeviews.org) à l'origine AS (et le préfixe et le préfixe longueur) du meilleur itinéraire vu par route-views2.routeviews.org. aspath.routeviews.org est la même idée , mais résout au chemin AS complet.

Ceci peut éventuellement être utilisé pour obtenir le sous-réseau d'une adresse IP via des requêtes DNS simples. Whit le sous-réseau, il est facile de calculer la plage IP (comme vous le savez probablement déjà, la plage est juste une notation différente du sous-réseau).

Questions connexes