Tidied, created stand-alone script
[dmarc.git] / queries.ipynb
diff --git a/queries.ipynb b/queries.ipynb
new file mode 100644 (file)
index 0000000..b2a54d3
--- /dev/null
@@ -0,0 +1,456 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "import configparser\n",
+    "import imaplib\n",
+    "import email\n",
+    "import io\n",
+    "import zipfile\n",
+    "import xml.etree.ElementTree\n",
+    "import psycopg2\n",
+    "import re\n",
+    "import datetime\n",
+    "import socket"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "['dmarc.ini']"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "config = configparser.ConfigParser()\n",
+    "config.read('dmarc.ini')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 31,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[(('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('google.com', 'pass', 'pass', '2607:f8b0:400d:c04::22a'),\n",
+       "  'mail-qg0-x22a.google.com'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('google.com', 'softfail', 'pass', '54.84.192.51'), 'mail1.keybase.io'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('google.com', 'softfail', 'pass', '94.136.40.147'), 'mailex.mailcore.me'),\n",
+       " (('google.com', 'softfail', 'pass', '94.136.40.149'), 'mailex.mailcore.me'),\n",
+       " (('google.com', 'softfail', 'pass', '94.136.40.147'), 'mailex.mailcore.me'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('google.com', 'softfail', 'pass', '2a00:1450:400c:c09::232'),\n",
+       "  'mail-wm0-x232.google.com'),\n",
+       " (('google.com', 'softfail', 'pass', '2a00:1450:400c:c09::231'),\n",
+       "  'mail-wm0-x231.google.com'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('google.com', 'softfail', 'pass', '146.185.136.235'), 'new.realms.co.uk'),\n",
+       " (('google.com', 'softfail', 'pass', '146.185.136.235'), 'new.realms.co.uk'),\n",
+       " (('google.com', 'pass', 'pass', '82.109.184.9'), 'clublloyds.com'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk')]"
+      ]
+     },
+     "execution_count": 31,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "with psycopg2.connect(host=config['database']['server'],\n",
+    "                        database=config['database']['database'], \n",
+    "                        user=config['database']['username'], \n",
+    "                        password=config['database']['password']) as conn:\n",
+    "    with conn.cursor() as cur:\n",
+    "        cur.execute(\"\"\"\n",
+    "        select report_metadata_org_name, auth_results_spf_result, auth_results_dkim_result, source_ip \n",
+    "        from reports, report_items\n",
+    "        where report_items.report_id = reports.id and\n",
+    "          source_ip <> inet '212.69.55.62'\"\"\")\n",
+    "        results = cur.fetchall()\n",
+    "[(r, socket.gethostbyaddr(r[3])[0]) for r in results]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 32,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[(('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('google.com', 'softfail', 'pass', '54.84.192.51'), 'mail1.keybase.io'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('google.com', 'softfail', 'pass', '94.136.40.147'), 'mailex.mailcore.me'),\n",
+       " (('google.com', 'softfail', 'pass', '94.136.40.149'), 'mailex.mailcore.me'),\n",
+       " (('google.com', 'softfail', 'pass', '94.136.40.147'), 'mailex.mailcore.me'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('google.com', 'softfail', 'pass', '2a00:1450:400c:c09::232'),\n",
+       "  'mail-wm0-x232.google.com'),\n",
+       " (('google.com', 'softfail', 'pass', '2a00:1450:400c:c09::231'),\n",
+       "  'mail-wm0-x231.google.com'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('google.com', 'softfail', 'pass', '146.185.136.235'), 'new.realms.co.uk'),\n",
+       " (('google.com', 'softfail', 'pass', '146.185.136.235'), 'new.realms.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n",
+       " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk')]"
+      ]
+     },
+     "execution_count": 32,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "with psycopg2.connect(host=config['database']['server'],\n",
+    "                        database=config['database']['database'], \n",
+    "                        user=config['database']['username'], \n",
+    "                        password=config['database']['password']) as conn:\n",
+    "    with conn.cursor() as cur:\n",
+    "        cur.execute(\"\"\"\n",
+    "        select report_metadata_org_name, auth_results_spf_result, auth_results_dkim_result, source_ip \n",
+    "        from reports, report_items\n",
+    "        where report_items.report_id = reports.id and\n",
+    "          auth_results_spf_result <> 'pass'\"\"\")\n",
+    "        results = cur.fetchall()\n",
+    "[(r, socket.gethostbyaddr(r[3])[0]) for r in results]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 20,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'lb.lon5.cpcloud.co.uk'"
+      ]
+     },
+     "execution_count": 20,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "socket.gethostbyaddr('65.20.0.12')[0]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 30,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[('02aca4c6bb144bb6b54773374c14a43a@hotmail.com',),\n",
+       " ('10356602625290246518',),\n",
+       " ('10491829640821461358',),\n",
+       " ('10706879170593875813',),\n",
+       " ('10744929815548178249',),\n",
+       " ('11019573554877343650',),\n",
+       " ('1102163566627474204',),\n",
+       " ('11743474449139138027',),\n",
+       " ('1178c4fe34364ff39cb6e24a51219093@hotmail.com',),\n",
+       " ('1207168150882246442',),\n",
+       " ('12137203242660163862',),\n",
+       " ('121bb39637c14847a40669dd3e7cdf49@hotmail.com',),\n",
+       " ('1233953228184721030',),\n",
+       " ('12434676377746978866',),\n",
+       " ('12700770160536483846',),\n",
+       " ('129a9dc3ff2e40ae8a3890ecc1c291d9@hotmail.com',),\n",
+       " ('13032699446207263761',),\n",
+       " ('13702792868066092542',),\n",
+       " ('13959504937502303973',),\n",
+       " ('13f28e952d67451281b90d55eee9c7c3@hotmail.com',),\n",
+       " ('14089985608998676943',),\n",
+       " ('14217880258295310962',),\n",
+       " ('14416654486328871570',),\n",
+       " ('1448246712.259522',),\n",
+       " ('1448419746.206772',),\n",
+       " ('1448592471.754446',),\n",
+       " ('1448851661.602960',),\n",
+       " ('1448938177.97045',),\n",
+       " ('1449024342.601561',),\n",
+       " ('1449110875.443288',),\n",
+       " ('1449197294.177690',),\n",
+       " ('1449283514.868026',),\n",
+       " ('1449542804.259788',),\n",
+       " ('1449629119.120001',),\n",
+       " ('1449888489.668429',),\n",
+       " ('1449974899.615312',),\n",
+       " ('1450234735.690828',),\n",
+       " ('1451184218.12383',),\n",
+       " ('1451443783.692950',),\n",
+       " ('1451616408.476341',),\n",
+       " ('1452134765.308922',),\n",
+       " ('1452393953.83099',),\n",
+       " ('1452480188.666644',),\n",
+       " ('1452566814.805501',),\n",
+       " ('1452653275.294149',),\n",
+       " ('1452741832.342075',),\n",
+       " ('1452826445.971145',),\n",
+       " ('1452912512.114840',),\n",
+       " ('1453084984.369330',),\n",
+       " ('1453171440.157305',),\n",
+       " ('1453258067.440890',),\n",
+       " ('1453344550.144698',),\n",
+       " ('1453517236.399019',),\n",
+       " ('1453689981.768611',),\n",
+       " ('1453776417.898739',),\n",
+       " ('1453862958.482897',),\n",
+       " ('1454381343.228960',),\n",
+       " ('1454467952.258012',),\n",
+       " ('1454640482.903992',),\n",
+       " ('1454986282.636073',),\n",
+       " ('1455072659.49250',),\n",
+       " ('1455418081.446180',),\n",
+       " ('1455679107.469767',),\n",
+       " ('1455763965.140751',),\n",
+       " ('1456109267.60200',),\n",
+       " ('1456282325.455667',),\n",
+       " ('1456455410.661669',),\n",
+       " ('1456541727.873510',),\n",
+       " ('1456713880.905762',),\n",
+       " ('1456800606.884839',),\n",
+       " ('1456886761.643377',),\n",
+       " ('1457059537.625770',),\n",
+       " ('1457146943.63077',),\n",
+       " ('1457232742.472142',),\n",
+       " ('1457318880.887129',),\n",
+       " ('1457491692.793016',),\n",
+       " ('1457750956.253773',),\n",
+       " ('1457919850.989656',),\n",
+       " ('1458006833.731671',),\n",
+       " ('1458093082.193350',),\n",
+       " ('1458353823.362308',),\n",
+       " ('1458524834.32161',),\n",
+       " ('1458611429.595569',),\n",
+       " ('1458784545.303847',),\n",
+       " ('1458957186.548175',),\n",
+       " ('1459129809.695034',),\n",
+       " ('1459216304.582931',),\n",
+       " ('14593873841710243963',),\n",
+       " ('14661842628106423589',),\n",
+       " ('14662396456930987863',),\n",
+       " ('15111277194568576101',),\n",
+       " ('15410706527896810898',),\n",
+       " ('15497495941279624940',),\n",
+       " ('15974729567081493290',),\n",
+       " ('16143280651570354241',),\n",
+       " ('16409503372348966326',),\n",
+       " ('164180405175632647',),\n",
+       " ('16520810497197721925',),\n",
+       " ('16824795799639390032',),\n",
+       " ('17044038014166863505',),\n",
+       " ('17071564483265101388',),\n",
+       " ('17659080448126516391',),\n",
+       " ('17880573400612806781',),\n",
+       " ('17984785070730076605',),\n",
+       " ('18203685646345145151',),\n",
+       " ('1862812391966551302',),\n",
+       " ('18c9a966da81401e80ca2a22310ffee6@hotmail.com',),\n",
+       " ('1922265692629464594',),\n",
+       " ('1bcc49be66744cc7a70ae1cc53515bbf@hotmail.com',),\n",
+       " ('1fadaaf3d9d544568a41042a1f42df05@hotmail.com',),\n",
+       " ('2002148329698541727',),\n",
+       " ('20246ec4a70041caa276560032fdc595@hotmail.com',),\n",
+       " ('2150510829392606201',),\n",
+       " ('2273327349069127175',),\n",
+       " ('271c80b9234a4c99bb9608abc5470c99@hotmail.com',),\n",
+       " ('2884439811958006165',),\n",
+       " ('2cfe3d0ec75b43f89a6a7ae57777e25c@hotmail.com',),\n",
+       " ('30d5ef78d6d746a4a777c56e7ca6f1c6@hotmail.com',),\n",
+       " ('3188090359734380692',),\n",
+       " ('3267388508667988463',),\n",
+       " ('3508955360705645678',),\n",
+       " ('3544432548848738700',),\n",
+       " ('3584764172722215181',),\n",
+       " ('3689737760348689620',),\n",
+       " ('36dd4e2b3f424bb6919d2d5d4c77c8dd@hotmail.com',),\n",
+       " ('3eba8b9e31724809aaf8d517e5656c4b@hotmail.com',),\n",
+       " ('4158049796460953654',),\n",
+       " ('4226319448276355598',),\n",
+       " ('43e7b5e2e0fb400aa914058360c8aaab@hotmail.com',),\n",
+       " ('456ffff78456494fbaed47b465259d46@hotmail.com',),\n",
+       " ('4654132158287507198',),\n",
+       " ('511d6fbb8484454b916ad8d799938390@hotmail.com',),\n",
+       " ('5164714352250096219',),\n",
+       " ('543258397004515473',),\n",
+       " ('580ca0a74948493ba8b7c6e62b8c81d9@hotmail.com',),\n",
+       " ('594749737641304465',),\n",
+       " ('6110291457768008366',),\n",
+       " ('641b4cc500334a7eb3f649b21af003ca@hotmail.com',),\n",
+       " ('6474240574237085621',),\n",
+       " ('6505353761044749597',),\n",
+       " ('6876229717666715946',),\n",
+       " ('68aad5080a774e2c997d159b546569b9@hotmail.com',),\n",
+       " ('6996084840178215735',),\n",
+       " ('7006513620611789399',),\n",
+       " ('724976339745122723',),\n",
+       " ('726a3261dfab4b4590b5fc898c561b08@hotmail.com',),\n",
+       " ('730219275619457',),\n",
+       " ('75eef2128eb84e9ca8e4837f3d4e31bd@hotmail.com',),\n",
+       " ('77b6c2aa32bf440aa240195db229cd4a@hotmail.com',),\n",
+       " ('7815164892280952980',),\n",
+       " ('7834597727856283739',),\n",
+       " ('840fc02d5cb847ec9f007fb236c0c190@hotmail.com',),\n",
+       " ('8426152571808739514',),\n",
+       " ('85136d21c514431e9f5cf9d36faa4a22@hotmail.com',),\n",
+       " ('8986675713054039362',),\n",
+       " ('8c177254c3cb41869dc3afab59f74c76@hotmail.com',),\n",
+       " ('9037150256193522538',),\n",
+       " ('9138782308848375092',),\n",
+       " ('9594298247075547297',),\n",
+       " ('a6b6aec1af1647eb8c6fd83baaed6bbe@hotmail.com',),\n",
+       " ('b6d15133598b4e00b21c8e2b7cbec05e@hotmail.com',),\n",
+       " ('ba1e9c35eec5428b8c3d6a32d25daa46@hotmail.com',),\n",
+       " ('ba64911adb0743d0b926588647ec5dcf@hotmail.com',),\n",
+       " ('c8e4fe772ae3434594e8396a8abf77b1@hotmail.com',),\n",
+       " ('c8f339f8f3364d78820dd03a84d11daa@hotmail.com',),\n",
+       " ('d1019291012e4f4589f59f1dacef31a3@hotmail.com',),\n",
+       " ('d71792d8afc246e9a4756bd13e600b59@hotmail.com',),\n",
+       " ('d77c5b90344149f5bb7b50ff69400aeb@hotmail.com',),\n",
+       " ('dbe2f49dbea947428b179e0ecec5f813@hotmail.com',),\n",
+       " ('de651cefbc0749a3aa3d91cdc5084f5a@hotmail.com',),\n",
+       " ('e245ef81f05b4697bea34bed977d8286@hotmail.com',),\n",
+       " ('e327753089e04950906848d104a93695@hotmail.com',),\n",
+       " ('ea3a96df66a845c5a666068ef8ca1368@hotmail.com',),\n",
+       " ('eda16c25bbdb48b2bae0d18eab13f736@hotmail.com',),\n",
+       " ('f94f00dee713479fb8bfdbcad539da88@hotmail.com',),\n",
+       " ('fc0750780e0d4b1395c4c9f41cb9791f@hotmail.com',)]"
+      ]
+     },
+     "execution_count": 30,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "with psycopg2.connect(host=config['database']['server'],\n",
+    "                        database=config['database']['database'], \n",
+    "                        user=config['database']['username'], \n",
+    "                        password=config['database']['password']) as conn:\n",
+    "    with conn.cursor() as cur:\n",
+    "        cur.execute(\"\"\"\n",
+    "        select report_metadata_report_id\n",
+    "        from reports\"\"\")\n",
+    "        results = cur.fetchall()\n",
+    "sorted(results)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.4.3+"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}