J'utilise pywhois pour déterminer si un nom de domaine est enregistré ou non. Voici mon code source. (Toutes les permutations de a.net
à zzz.net
)Comment savoir si un programme nom de domaine est enregistré ou non
#!/usr/bin/env python
import whois #pip install python-whois
import string
import itertools
def main():
characters = list(string.ascii_lowercase)
##domain names generator
for r in range(1, 4) :
for name in itertools.permutations(characters, r) : #from 'a.net' to 'zzz.net'
url = ''.join(name) + '.net'
#check if a domain name is registered or not
try :
w = whois.whois(url)
except (whois.parser.PywhoisError): #NOT FOUND
print(url) #unregistered domain names?
if __name__ == '__main__':
main()
J'ai obtenu les résultats suivants:
jv.net
uli.net
vno.net
xni.net
Cependant, tous au-dessus des noms de domaine ont déjà été enregistrés. Ce n'est pas exact. Quelqu'un peut-il l'expliquer? Il y a beaucoup d'erreurs:
fgets: Connection reset by peer
connect: No route to host
connect: Network is unreachable
connect: Connection refused
Timeout.
Il y a une autre façon, a rapporté here.
import socket
try:
socket.gethostbyname_ex(url)
except:
print(url) #unregistered domain names?
En parlant de vitesse, j'utilise map
à traitement parallèle.
def select_unregisteredd_domain_names(self, domain_names):
#Parallelism using map
pool = ThreadPool(16) # Sets the pool size
results = pool.map(query_method(), domain_names)
pool.close() #close the pool and wait for the work to finish
pool.join()
return results
À moins que quelque chose ne me manque, votre code ne comprend que des erreurs. Cela ne signifie pas nécessairement qu'aucun enregistrement n'a été trouvé; il pourrait s'agir d'un problème de réseau ou d'un certain nombre d'autres problèmes. –
@EdCottrell Comment corriger mes codes? – SparkAndShine
Je ne sais pas quoi vous dire, car je ne connais pas très bien le phwhois. C'est pourquoi j'ai posté un commentaire au lieu d'une réponse.Vous devez examiner l'erreur de plus près pour déterminer les raisons de l'échec. Bonne chance! –