49 votes

Python recherche le nom d'hôte à partir de l'IP avec un délai de 1 seconde

Comment puis-je rechercher un nom d'hôte à partir d'une adresse IP ? En outre, comment puis-je spécifier un délai d'attente si aucune entrée DNS inverse n'existe ? J'essaie de faire en sorte que les choses soient aussi rapides que possible. Ou existe-t-il un meilleur moyen ? Je vous remercie !

86voto

ChristopheD Points 38217
>>> import socket
>>> socket.gethostbyaddr("69.59.196.211")
('stackoverflow.com', ['211.196.59.69.in-addr.arpa'], ['69.59.196.211'])

Pour mettre en œuvre le délai d'attente sur la fonction, ce fil de discussion de stackoverflow a des réponses à ce sujet.

17voto

adamse Points 4458

Ce que vous essayez d'accomplir est appelé "Reverse DNS lookup".

socket.gethostbyaddr("IP") 
# => (hostname, alias-list, IP)

http://docs.python.org/library/socket.html?highlight=gethostbyaddr#socket.gethostbyaddr

Cependant, en ce qui concerne le délai d'attente, j'ai lu que des personnes avaient rencontré des problèmes à ce sujet. Je vous conseille de consulter PyDNS o ce solution pour un traitement plus avancé.

15voto

webjunkie Points 2101
>>> import socket
>>> if hasattr(socket, 'setdefaulttimeout'):
>>>     # Set the default timeout on sockets to 5 seconds
>>>     socket.setdefaulttimeout(5)
>>> socket.gethostbyaddr("69.59.196.211")
('stackoverflow.com', ['211.196.59.69.in-addr.arpa'], ['69.59.196.211'])

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X