2009-09-26 10 views
0

Je veux fondamentalement mettre en œuvre quelque chose où vous pouvez taper n'importe quel URI (je ne traiterai probablement qu'avec http) et je veux retourner l'enregistrement A du domaine dans l'URI, je veux l'adresse IP du serveur.Python: Récupère l'enregistrement A d'un URI?

Je sais qu'il y a la commande ping que la plupart des gens utilisent pour afficher une adresse IP, mais je sais aussi qu'il y a 'host' et 'dig' qui sont plus spécifiques.

Y a-t-il des fonctions natives que je peux utiliser pour faire cela pour moi? Et si oui, quelle est la clémence de cette fonction en termes de chaîne d'URI qu'elle accepte et de structure dans laquelle elle se trouve? Je veux jeter:

Et ont fondamentalement rien retourner une adresse IP. Si besoin est, je peux m'occuper de l'analyse de l'URI (donc c'est un format cohérent quand on me regarde), c'est un avantage supplémentaire.

Répondre

5
py> import urlparse,socket 
py> p = urlparse.urlparse("http://stackoverflow.com/questions/1480183") 
py> p 
('http', 'stackoverflow.com', '/questions/1480183', '', '', '') 
py> host=p[1] 
py> ai=socket.gethostbyname(host) 
py> socket.gethostbyname(host) 
'69.59.196.211' 
+0

juste ce que je cherchais, très apprécié. –

+0

Ça me fait peur combien de gens connaissent à propos de python. Je suis juste un hacker pathétique, mais avec Python, je parviens toujours à accomplir des choses. – twneale

+0

p [1] n'est pas l'hôte dans: >>> p = urlparse.urlparse ("www.stackoverflow.com") >>> p ('', '', 'www.stackoverflow.com', '', '', '') >>> p [1] '' – foosion