36 lines
776 B
Python
36 lines
776 B
Python
#!/usr/bin/env python3
|
|
# Zabbix External Script: Domain Expiration Check
|
|
# Usage: check_domain.py <domain>
|
|
# Requires: pip3 install python-whois
|
|
|
|
import sys
|
|
import whois
|
|
from datetime import datetime
|
|
|
|
if len(sys.argv) < 2:
|
|
print("-1") # Missing argument
|
|
sys.exit(1)
|
|
|
|
domain = sys.argv[1]
|
|
|
|
try:
|
|
w = whois.whois(domain)
|
|
|
|
# Handle list of dates (some registries return list)
|
|
expiration_date = w.expiration_date
|
|
if isinstance(expiration_date, list):
|
|
expiration_date = expiration_date[0]
|
|
|
|
if expiration_date is None:
|
|
print("-2") # Retrieval failed
|
|
sys.exit()
|
|
|
|
now = datetime.now()
|
|
delta = expiration_date - now
|
|
|
|
print(delta.days)
|
|
|
|
except Exception as e:
|
|
# print(e) # Debug
|
|
print("-1") # Error
|