summaryrefslogtreecommitdiff
path: root/monitor/josef_experimental.py
diff options
context:
space:
mode:
authorJosef Gustafsson <josef.gson@gmail.com>2015-09-10 13:37:17 +0200
committerJosef Gustafsson <josef.gson@gmail.com>2015-09-10 13:37:17 +0200
commit1df8593e526d76449dc0be54b6aae755a4405e57 (patch)
tree5ba046a2567463777d7d19feffcf9aca90779178 /monitor/josef_experimental.py
parentdbee1f90fc8e49c008bb9032c94eb8be6612c1de (diff)
creating output dir if missing
Diffstat (limited to 'monitor/josef_experimental.py')
-rwxr-xr-xmonitor/josef_experimental.py84
1 files changed, 79 insertions, 5 deletions
diff --git a/monitor/josef_experimental.py b/monitor/josef_experimental.py
index 10d48bb..14b8e99 100755
--- a/monitor/josef_experimental.py
+++ b/monitor/josef_experimental.py
@@ -4,15 +4,89 @@
import sys
from josef_lib import *
import leveldb
+import argparse
+import json
from josef_leveldb import *
+from datetime import datetime as dt
-SEP = ";"
-db = db_open()
-res = db_lookup_domain(db, "*.google.com")
-print res
-print "Found " + str(len(res)) + " results"
+parser = argparse.ArgumentParser(description="")
+parser.add_argument('--domain', default=None, help="RTFM")
+parser.add_argument('--log', default=None, help="RTFM")
+parser.add_argument('--exclude-expired', action='store_true', help="RTFM")
+
+args = parser.parse_args()
+
+monitored_domains = [
+ "google.com",
+ "preishelden.de",
+ "liu.se",
+ "nordu.net",
+ "symantec.com",
+]
+
+
+
+if args.domain:
+ db = db_open()
+ raw = db_lookup_domain(db, args.domain)
+else:
+ print "No domain selected!"
+ sys.exit()
+
+cur_time = dt.now()
+count_valid = 0
+count_all = 0
+for item in raw:
+ # print item + '}', type(item)
+ entry = json.loads((item + '}').replace("'", '"'))
+ # print entry, type(entry)
+ success = True
+ not_after_time = dt.strptime(entry["not_after"], "%b %d %H:%M:%S %Y GMT")
+ not_before_time = dt.strptime(entry["not_before"], "%b %d %H:%M:%S %Y GMT")
+
+
+ if args.log:
+ if args.log in entry["log"]:
+ pass
+ else:
+ success = False
+
+ if cur_time > not_after_time:
+ expired = True
+ elif cur_time < not_before_time:
+ expired = True
+ else:
+ expired = False
+
+ # Exclude expired
+ if args.exclude_expired and expired:
+ success = False
+
+
+ # Set count matches
+ if success:
+ count_all += 1
+ if not expired:
+ count_valid += 1
+
+ # Print matching
+ if success:
+ s = entry["subject"].split("CN=")[1] + \
+ " certified by " + entry["issuer"].split("CN=")[1] + \
+ " (" + entry["log"] + ") "
+ if expired:
+ print "(NOT VALID) " + s
+ else:
+ print "(VALID) " + s
+
+
+print str(count_all) + " matches found."
+
+
+# print res
+# print "Found " + str(len(res)) + " results"
# print db.Get("wush.net")
# print db.Get("wush.net")