forked from idiom/IRScripts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathurlinfo.py
83 lines (65 loc) · 2.75 KB
/
urlinfo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/usr/bin/env python
# -*- coding: utf8 -*-
import urllib
import urllib2
import json
import time
import argparse
class URLInfo:
def __init__(self, debug = False):
self.debug = debug
def sitereview(self,target):
#TODO: Figure out query limit and throttle requests.
sitedata = {}
sitedata['error'] = False
try:
url = 'http://sitereview.bluecoat.com/rest/categorization'
targeturl = {'url' : target}
data = urllib.urlencode(targeturl)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
data = json.load(response)
sitedata['category'] = data['categorization'].split('>')[1].split('<')[0]
sitedata['url'] = data['url']
sitedata['locked'] = data['locked']
sitedata['linkable'] = data['linkable']
sitedata['unrated'] = data['unrated']
if not sitedata['unrated']:
sitedata['ratedate'] = data['ratedate'].split(':')[1].split('<img')[0].strip()
else:
sitedata['ratedate'] = ''
except Exception as e:
print e
sitedata['error'] = True
sitedata['errordetails'] = e
finally:
return sitedata
def vtsearch(self,target):
print 'Searching VT for entries'
def urlquery(self,target):
print 'Searching urlquery for entries'
def main():
parser = argparse.ArgumentParser(description="A script to show info about a url/domain.")
parser.add_argument("url", help="The url to get info on.")
parser.add_argument('-d','--debug',dest='debug',action='store_true',help="Print debug messages ")
parser.add_argument('-s','--sitereview',dest='sitereview',action='store_true',help="Query bluecoat for URL category.")
parser.add_argument('-a','--all',dest='sitereview',action='store_true',help="Query all of the services.")
args = parser.parse_args()
urlq = URLInfo()
if args.sitereview:
sitedata = urlq.sitereview(args.url)
if sitedata['error']:
print 'An error occured querying the service...'
print sitedata['errordetails']
else:
print
print '==================================='
print
print 'URL: %s' % sitedata['url']
print 'Category: %s' % sitedata['category']
print 'Rate Date: %s' % sitedata['ratedate']
print 'Unrated: %s' % sitedata['unrated']
print
print '==================================='
if __name__ == '__main__':
main()