Hai un’agenzia, sei un freelancer che gestisce molti portali o sei semplicemente un project addicted, quindi un creatore seriale di nuovi progetti? Allora questo articolo farà sicuramente al caso tuo.
Ho deciso di scrivere queste due righe con un blocco di codice che mi ha salvato molte volte in passato, ovvero un checker in grado di capire la data di scadenza di un dominio.
Io ho pensato questo articolo come introduzione, potresti comunque implementare questo script in sistemi più avanzati così da avere una funzionalità molto importante che ti permetterà di non dimenticarti di rinnovare i tuoi domini.
È importante specificare che questo script non l’ho creato io, ma è possibile reperirlo a questo URL, io voglio solo condividerlo con te in quanto è stato molto importante per me poter creare uno script in grado di monitorare alla perfezione la data di scadenza dei miei domini.
I prossimi step saranno sicuramente quelli di creare un cron di verifica per i miei domini e, perché no, creare uno bello strumentino per tenere monitorati tutti quei domini di progetti interessanti che potrebbero essere utili al nostro business e prenderli una volta scaduti, ma questa è una cosa con delle sfumature di grigio ;).
Fatte le dovute precisazioni, iniziamo con il vedere come funziona al meglio questo script:
1. Importare le giuste librerie per poter far funzionare lo script
import whois
from datetime import datetime
from sys import argv,exit
2. Scrivere tutto lo script
Una volta importate le librerie possiamo procedere con la scrittura del resto del codice:
now = datetime.now()
if len(argv) < 2:
print ('Quando lanci il comando python, specifica anche il dominio: ')
print ('')
print ('./script.py michelesabatini.it')
exit(1)
domain = argv[1]
try:
w = whois.whois(domain)
except whois.parser.PywhoisError as e:
print (e)
exit(1)
if type(w.expiration_date) == list:
w.expiration_date = w.expiration_date[0]
else:
w.expiration_date = w.expiration_date
domain_expiration_date = str(w.expiration_date.day) + '/' + str(w.expiration_date.month) + '/' + str(w.expiration_date.year)
timedelta = w.expiration_date - now
days_to_expire = timedelta.days
if timedelta.days <= 60 and timedelta.days > 30:
print ('AVVISO: %s sta per scadere in %s days, la data di scadenza è %s') % (domain, days_to_expire, domain_expiration_date)
exit(1)
elif timedelta.days <= 30:
print ('AVVISO: %s sta per scadere in %s days, la data di scadenza è %s') % (domain, days_to_expire, domain_expiration_date)
exit(2)
else:
print ('OK, il dominio %s scadrà il %s, %s alla scadenza. Non devi fare nulla per il momento' % (domain, domain_expiration_date, days_to_expire))
exit(0)
Una volta scritto tutto il codice in un file, possiamo salvarlo nel Desktop come “script.py” e successivamente aprire il terminale. Se sei da mac, puoi scrivere “Terminale” nella nella barra di ricerca o “cmd” se sei utente windows.
Rechiamoci nella cartella utilizzando in comandi “cd /” e successivamente “cd Desktop” e successivamente “python3 script.py nomedominio.it“.
In output riceverai un messaggio in base alla data di scadenza del dominio che hai inserito nella riga di comando.
Possiamo creare anche una variante del codice in grado di leggere una lista passata in input e tramite un ciclo for analizzare dominio per dominio.
Ti lascio nuovamente tutto il codice in blocco, mi raccomando installa le giuste librerie per poterlo far funzionare:
#!/usr/bin/python
import whois
from datetime import datetime
from sys import argv,exit
now = datetime.now()
if len(argv) < 2:
print ('Quando lanci il comando python, specifica anche il dominio: ')
print ('')
print ('./script.py michelesabatini.it')
exit(1)
domain = argv[1]
try:
w = whois.whois(domain)
except whois.parser.PywhoisError as e:
print (e)
exit(1)
if type(w.expiration_date) == list:
w.expiration_date = w.expiration_date[0]
else:
w.expiration_date = w.expiration_date
domain_expiration_date = str(w.expiration_date.day) + '/' + str(w.expiration_date.month) + '/' + str(w.expiration_date.year)
timedelta = w.expiration_date - now
days_to_expire = timedelta.days
if timedelta.days <= 60 and timedelta.days > 30:
print ('AVVISO: %s sta per scadere in %s days, la data di scadenza è %s') % (domain, days_to_expire, domain_expiration_date)
exit(1)
elif timedelta.days <= 30:
print ('AVVISO: %s sta per scadere in %s days, la data di scadenza è %s') % (domain, days_to_expire, domain_expiration_date)
exit(2)
else:
print ('OK, il dominio %s scadrà il %s, %s alla scadenza. Non devi fare nulla per il momento' % (domain, domain_expiration_date, days_to_expire))
exit(0)
Fanne buon uso!
Buona SEO,
Michele.
Lascia un commento