Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e62b756155 | ||
|
|
b704eea43f | ||
|
|
9c8665b716 | ||
|
|
18eb6cdca4 | ||
|
|
9d5a9eb391 | ||
|
|
0a33f67577 | ||
|
|
048c46f2bc | ||
|
|
3c173e851b | ||
|
|
0c9bfd8d3e | ||
|
|
9a91620cf0 | ||
|
|
3b2b0bcff4 | ||
|
|
7f2468e1a9 |
No files matched your search
@@ -0,0 +1,25 @@
|
||||
from flask import Flask, render_template, request
|
||||
import main as dnspy
|
||||
app = Flask(__name__)
|
||||
app.config['DEBUG'] = True
|
||||
|
||||
@app.route('/', methods=['POST', 'GET'])
|
||||
def index():
|
||||
if request.method == 'POST':
|
||||
data = request.form['domain']
|
||||
print(data)
|
||||
dnsinfo, whois = dnspy.lookupDomain(str(data))
|
||||
#dnsinfo = {"." : "."}
|
||||
return render_template('dns.html', whois=whois, dnsinfo=dnsinfo)
|
||||
else:
|
||||
whois = {"Status" : "Please enter a domain"}
|
||||
dnsinfo = {"Stub" : "Data"}
|
||||
return render_template('dns.html', whois=whois, dnsinfo=dnsinfo)
|
||||
|
||||
@app.route('/domain/', methods=['POST', 'GET'])
|
||||
def getDomain():
|
||||
data = request.form['domain']
|
||||
return data
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(host='0.0.0.0')
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
git clone http://git.vps.benjamyn-testing.com/benjamyn/whois
|
||||
pip install -r requirements.txt
|
||||
cd whois
|
||||
python2 setup.py install
|
||||
|
||||
+2
-2
@@ -1,2 +1,2 @@
|
||||
from . import files
|
||||
from . import config
|
||||
import files
|
||||
import config
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
+1
-1
@@ -1,4 +1,4 @@
|
||||
from . import files as f
|
||||
import files as f
|
||||
import json
|
||||
import os
|
||||
|
||||
|
||||
Binary file not shown.
+2
-2
@@ -2,7 +2,7 @@ def openFile(path):
|
||||
try:
|
||||
myFile = open(path)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
print e
|
||||
pass
|
||||
return myFile
|
||||
|
||||
@@ -10,6 +10,6 @@ def closeFile(fileObj):
|
||||
try:
|
||||
fileObj.close()
|
||||
except Exception as e:
|
||||
print(e)
|
||||
print e
|
||||
pass
|
||||
|
||||
Binary file not shown.
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/python2.7
|
||||
#GUI REWRITE
|
||||
import whois
|
||||
import signal
|
||||
import dns.resolver
|
||||
@@ -26,13 +27,15 @@ colour_default = gc.getColour(jsonData["colour_default"])
|
||||
CSVFile = jsonData["country_codes"]
|
||||
# Endconfig block
|
||||
|
||||
dnsrecs = {}
|
||||
|
||||
if platform.system().lower() == "linux":
|
||||
import readline
|
||||
import readline
|
||||
else:
|
||||
colour_attn = ""
|
||||
colour_good = ""
|
||||
colour_pretty = ""
|
||||
colour_default = ""
|
||||
colour_attn = ""
|
||||
colour_good = ""
|
||||
colour_pretty = ""
|
||||
colour_default = ""
|
||||
|
||||
running = 1
|
||||
prompt = ': '
|
||||
@@ -43,122 +46,132 @@ ipData = {"asn_country_code":"Country", "asn_description":"Owner"}
|
||||
CountryDict = cc.parseCSV(cc.openCSV(CSVFile))
|
||||
|
||||
def domainWhois(inData):
|
||||
whoisData = whois.whois.Whois(inData).query()
|
||||
return whois.parser.Parser(inData, whoisData[1]).parse()
|
||||
whoisData = whois.whois(inData).query()
|
||||
return whois.Parser(inData, whoisData[1]).parse()
|
||||
|
||||
def signal_handler(singal, frame):
|
||||
quit()
|
||||
quit()
|
||||
|
||||
def printWhois(resultData):
|
||||
for x in range(0, len(whoisrecs)):
|
||||
try:
|
||||
for item in resultData[whoisrecs[x]]:
|
||||
if whoisrecs[x] == "Status":
|
||||
if "ok" in item or "OK" in item:
|
||||
print(indent + colour_good + '%s: %s' % (whoisrecs[x], item) + colour_default)
|
||||
else:
|
||||
print(indent + colour_attn + '%s: %s' % (whoisrecs[x], item) + colour_default)
|
||||
else:
|
||||
print(indent + '%s: %s' % (whoisrecs[x], item))
|
||||
except Exception as e:
|
||||
pass
|
||||
for x in range(0, len(whoisrecs)):
|
||||
try:
|
||||
for item in resultData[whoisrecs[x]]:
|
||||
if whoisrecs[x] == "Status":
|
||||
if "ok" in item or "OK" in item:
|
||||
print(indent + colour_good + '%s: %s' % (whoisrecs[x], item) + colour_default)
|
||||
else:
|
||||
print(indent + colour_attn + '%s: %s' % (whoisrecs[x], item) + colour_default)
|
||||
else:
|
||||
print(indent + '%s: %s' % (whoisrecs[x], item))
|
||||
except Exception as e:
|
||||
pass
|
||||
|
||||
def cnameToA(cname):
|
||||
data = dns.resolver.query(cname, "A")
|
||||
for rdata in data:
|
||||
return rdata
|
||||
data = dns.resolver.query(cname, "A")
|
||||
for rdata in data:
|
||||
return rdata
|
||||
|
||||
def parseInput(inData):
|
||||
tmpInData = inData.lower()
|
||||
tmpInData = tmpInData.strip()
|
||||
if tmpInData == "quit":
|
||||
quit()
|
||||
if checkIfIP(tmpInData):
|
||||
lookupIP(tmpInData)
|
||||
else:
|
||||
lookupDomain(tmpInData)
|
||||
tmpInData = inData.lower()
|
||||
tmpInData = tmpInData.strip()
|
||||
if tmpInData == "quit":
|
||||
quit()
|
||||
if checkIfIP(tmpInData):
|
||||
lookupIP(tmpInData)
|
||||
else:
|
||||
lookupDomain(tmpInData)
|
||||
|
||||
def recLookup(inData):
|
||||
for dnsrec in dnsrecords:
|
||||
try:
|
||||
data = dns.resolver.query(inData, dnsrec)
|
||||
for rdata in data:
|
||||
rdataTMP = rdata.to_text().split(" ")
|
||||
if dnsrec != "MX":
|
||||
if dnsrec != "NS":
|
||||
print( indent + colour_pretty + "%s:\t%s%s" % (dnsrec, colour_good, rdata) + colour_default)
|
||||
else:
|
||||
tmpData = cnameToA(rdata.to_text())
|
||||
print( indent + colour_pretty + "%s:\t%s%s -> %s" % (dnsrec, colour_good, rdata, tmpData) + colour_default)
|
||||
else:
|
||||
tmpData = cnameToA(rdataTMP[1])
|
||||
print( indent + colour_pretty + "%s:\t%s%s -> %s" % (dnsrec, colour_good, rdata, tmpData) + colour_default)
|
||||
except Exception as e:
|
||||
pass
|
||||
global dnsrecs
|
||||
for dnsrec in dnsrecords:
|
||||
try:
|
||||
data = dns.resolver.query(inData, dnsrec)
|
||||
for rdata in data:
|
||||
rdataTMP = rdata.to_text().split(" ")
|
||||
if dnsrec != "MX":
|
||||
if dnsrec != "NS":
|
||||
#print( indent + colour_pretty + "%s:\t%s%s" % (dnsrec, colour_good, rdata) + colour_default)
|
||||
dnsrecs[dnsrec] = rdata
|
||||
else:
|
||||
tmpData = cnameToA(rdata.to_text())
|
||||
#print( indent + colour_pretty + "%s:\t%s%s -> %s" % (dnsrec, colour_good, rdata, tmpData) + colour_default)
|
||||
dnsrecs[dnsrec] = rdata
|
||||
else:
|
||||
tmpData = cnameToA(rdataTMP[1])
|
||||
#print( indent + colour_pretty + "%s:\t%s%s -> %s" % (dnsrec, colour_good, rdata, tmpData) + colour_default)
|
||||
dnsrecs[dnsrec] = rdata
|
||||
except Exception as e:
|
||||
pass
|
||||
|
||||
def subLookup(inData, sub):
|
||||
try:
|
||||
data = dns.resolver.query(sub + '.' + inData)
|
||||
for rdata in data:
|
||||
if data.qname == data.canonical_name:
|
||||
print(indent + colour_pretty + "%s:\t%s%s" % (sub, colour_good, rdata) + colour_default)
|
||||
else:
|
||||
for rdata in dns.resolver.query(sub + '.' + inData, "CNAME"):
|
||||
print(indent + colour_pretty + "%s:\t%s%s -> %s" % (sub, colour_good, rdata, cnameToA(sub + "." + inData).to_text()) + colour_default)
|
||||
except Exception as e:
|
||||
pass
|
||||
global dnsrecs
|
||||
try:
|
||||
data = dns.resolver.query(sub + '.' + inData)
|
||||
for rdata in data:
|
||||
if data.qname == data.canonical_name:
|
||||
#Old function printed the result now I am returning the result, may add to a dict.
|
||||
#print(indent + colour_pretty + "%s:\t%s%s" % (sub, colour_good, rdata) + colour_default)
|
||||
dnsrecs[sub] = rdata
|
||||
else:
|
||||
for rdata in dns.resolver.query(sub + '.' + inData, "CNAME"):
|
||||
#print(indent + colour_pretty + "%s:\t%s%s -> %s" % (sub, colour_good, rdata, cnameToA(sub + "." + inData).to_text()) + colour_default)
|
||||
dnsrecs[sub] = rdata
|
||||
except Exception as e:
|
||||
pass
|
||||
|
||||
def lookupDomain(inData):
|
||||
try:
|
||||
result = domainWhois(inData)
|
||||
except Exception as E:
|
||||
print('%s : TLD most likely needs to be configured' % (E))
|
||||
result = "Error"
|
||||
print("\nWhois Information")
|
||||
printWhois(result)
|
||||
print("\nDNS Records")
|
||||
recLookup(inData)
|
||||
print("\nSub Domains")
|
||||
for subs in subdomains:
|
||||
subLookup(inData, subs)
|
||||
global dnsrecs
|
||||
dnsrecs = {}
|
||||
try:
|
||||
result = domainWhois(inData)
|
||||
except Exception as E:
|
||||
print('%s : TLD most likely needs to be configured' % (E))
|
||||
result = "Error"
|
||||
#print("\nWhois Information")
|
||||
#printWhois(result)
|
||||
#print("\nDNS Records")
|
||||
recLookup(inData)
|
||||
#print("\nSub Domains")
|
||||
for subs in subdomains:
|
||||
subLookup(inData, subs)
|
||||
return dnsrecs, result
|
||||
|
||||
def lookupIP(inData):
|
||||
try:
|
||||
with warnings.catch_warnings():
|
||||
warnings.filterwarnings("ignore", category=UserWarning)
|
||||
ipnet = Net(inData)
|
||||
ipobj = IPASN(ipnet)
|
||||
results = ipobj.lookup()
|
||||
for types in ipData:
|
||||
if types == "asn_country_code":
|
||||
print(indent + "%s%s:%s\t%s%s" % (colour_pretty, ipData[types], colour_good, CountryDict[results[types]], colour_default))
|
||||
else:
|
||||
print(indent + "%s%s:%s\t%s%s" % (colour_pretty, ipData[types], colour_good, results[types], colour_default))
|
||||
rev_name = reversename.from_address(inData)
|
||||
try:
|
||||
reverseName = str(dns.resolver.query(rev_name, "PTR")[0])
|
||||
except Exception as E:
|
||||
reverseName = E
|
||||
print('\n' + indent + '%sPTR:%s\t\t%s%s' % (colour_pretty, colour_good, reverseName, colour_default))
|
||||
except:
|
||||
None
|
||||
with warnings.catch_warnings():
|
||||
warnings.filterwarnings("ignore", category=UserWarning)
|
||||
ipnet = Net(inData)
|
||||
ipobj = IPASN(ipnet)
|
||||
results = ipobj.lookup()
|
||||
for types in ipData:
|
||||
if types == "asn_country_code":
|
||||
print(indent + "%s%s:%s\t%s%s" % (colour_pretty, ipData[types], colour_good, CountryDict[results[types]], colour_default))
|
||||
else:
|
||||
print(indent + "%s%s:%s\t%s%s" % (colour_pretty, ipData[types], colour_good, results[types], colour_default))
|
||||
rev_name = reversename.from_address(inData)
|
||||
try:
|
||||
reverseName = str(dns.resolver.query(rev_name, "PTR")[0])
|
||||
except Exception as E:
|
||||
reverseName = E
|
||||
print('\n' + indent + '%sPTR:%s\t\t%s%s' % (colour_pretty, colour_good, reverseName, colour_default))
|
||||
|
||||
# Taken and modified from DNSpy 1, I am not asahmed it works
|
||||
def checkIfIP(in1):
|
||||
count = 0
|
||||
inSplit = in1.split('.')
|
||||
if len(inSplit) != 4:
|
||||
return False
|
||||
for part in inSplit:
|
||||
if part.isdigit():
|
||||
count += 1
|
||||
else:
|
||||
return False
|
||||
if count == 4:
|
||||
return True
|
||||
count = 0
|
||||
inSplit = in1.split('.')
|
||||
if len(inSplit) != 4:
|
||||
return False
|
||||
for part in inSplit:
|
||||
if part.isdigit():
|
||||
count += 1
|
||||
else:
|
||||
return False
|
||||
if count == 4:
|
||||
return True
|
||||
|
||||
signal.signal(signal.SIGINT, signal_handler)
|
||||
|
||||
while running == 1:
|
||||
parseInput(input("Please Enter a domain" + prompt) )
|
||||
print('\n')
|
||||
if __name__ == '__main__':
|
||||
|
||||
while running == 1:
|
||||
parseInput(raw_input("Please Enter a domain" + prompt) )
|
||||
print('\n')
|
||||
@@ -1,3 +1,3 @@
|
||||
dnspython
|
||||
ipwhois
|
||||
readline
|
||||
dnspython
|
||||
flask
|
||||
Vendored
+7
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* Bootstrap v4.1.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2018 The Bootstrap Authors
|
||||
* Copyright 2011-2018 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weigLine truncated
|
||||
/*# sourceMappingURL=bootstrap.min.css.map */
|
||||
@@ -0,0 +1,46 @@
|
||||
.records {
|
||||
font-size: 12px;
|
||||
padding: 30px;
|
||||
color: #363636;
|
||||
}
|
||||
|
||||
.myNav {
|
||||
background-color: #A4A4A4;
|
||||
color: #363636;
|
||||
}
|
||||
|
||||
.column {
|
||||
width: 40%;
|
||||
background-color: #B1B1B1;
|
||||
padding: 2%;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.row:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.buffer {
|
||||
width: 2%;
|
||||
background-color: #363636;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.allmostbiggertext {
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.body {
|
||||
background-color: #363636;
|
||||
justify-content: center;
|
||||
}
|
||||
.col-centered{
|
||||
float: none;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
|
||||
Vendored
+7
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* Bootstrap v4.1.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e(t.bootstrap={},t.jQuery,t.Popper)}(this,function(t,e,c){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function o(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function h(r){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{},e=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(s).filter(function(t){return Object.getOwnPropertyDescriptor(s,t).enumerable}))),e.forEach(function(t){var e,n,i;e=r,i=s[n=t],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return r}e=e&&e.hasOwnProperty("default")?e.default:e,c=c&&c.hasOwnProperty("default")?c.default:c;var r,n,s,a,l,u,f,d,_,g,m,p,v,E,y,T,C,I,A,D,b,S,w,N,O,k,P,L,j,R,H,W,M,x,U,K,F,V,Q,B,Y,G,q,z,X,J,Z,$,tt,et,nt,it,rt,st,ot,at,lt,ht,ct,ut,ft,dt,_t,gt,mt,pt,vt,Et,yt,Tt,Ct,It,At,Dt,bt,St,wt,Nt,Ot,kt,Pt,Lt,jt,Rt,Ht,Wt,Mt,xt,Ut,Kt,Ft,Vt,Qt,Bt,Yt,Gt,qt,zt,Xt,Jt,Zt,$t,te,ee,ne,ie,re,se,oe,ae,le,he,ce,ue,fe,de,_e,ge,me,pe,ve,Ee,ye,Te,Ce,Ie,Ae,De,be,Se,we,Ne,Oe,ke,Pe,Le,je,Re,He,We,Me,xe,Ue,Ke,Fe,Ve,Qe,Be,Ye,Ge,qe,ze,Xe,Je,Ze,$e,tn,en,nn,rn,sn,on,an,ln,hn,cn,un,fn,dn,_n,gn,mn,pn,vn,En,yn,Tn,Cn=function(i){var e="transitionend";function t(t){var e=this,n=!1;return i(this).one(l.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||l.triggerTransitionEnd(e)},t),this}var l={TRANSITION_END:"bsTransitionEnd",getUID:function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");e&&"#"!==e||(e=t.getAttribute("href")||"");try{return 0<i(document).find(e).length?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=i(t).css("transition-duration");return parseFloat(e)?(e=e.split(",")[0],1e3*parseFloat(e)):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){i(t).trigger(e)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var r=n[i],s=e[i],o=s&&l.isElement(s)?"element":(a=s,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(o))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+o+'" but expected type "'+r+'".')}var a}};return i.fn.emulateTransitionEnd=t,i.event.special[l.TRANSITION_END]={bindType:e,delegateType:e,handle:function(t){if(i(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}},l}(e),In=(n="alert",a="."+(s="bs.alert"),l=(r=e).fn[n],u={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},f="alert",d="fade",_="show",g=function(){function i(t){this._element=t}var t=i.prototype;return t.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},t.dispose=function(){r.removeData(this._element,s),this._element=null},t._getRootElement=function(t){var e=Cn.getSelectorFromElement(t),n=!1;return e&&(n=r(e)[0]),n||(n=r(t).closest("."+f)[0]),n},t._triggerCloseEvent=function(t){var e=r.Event(u.CLOSE);return r(t).trigger(e),e},t._removeElement=function(e){var n=this;if(r(e).removeClass(_),r(e).hasClass(d)){var t=Cn.getTransitionDurationFromElement(e);r(e).one(Cn.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(t)}else this._destroyElement(e)},t._destroyElement=function(t){r(t).detach().trigger(u.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var t=r(this),e=t.data(s);e||(e=new i(this),t.data(s,e)),"close"===n&&e[n](this)})},i._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},o(i,null,[{key:"VERSION",get:function(){return"4.1.1"}}]),i}(),r(document).on(u.CLICK_DATA_API,'[data-dismiss="alert"]',g._handleDismiss(new g)),r.fn[n]=g._jQueryInterface,r.fn[n].Constructor=g,r.fn[n].noConflict=function(){return r.fn[n]=l,g._jQueryInterface},g),An=(p="button",E="."+(v="bs.button"),y=".data-api",T=(m=e).fn[p],C="active",I="btn",D='[data-toggle^="button"]',b='[data-toggle="buttons"]',S="input",w=".active",N=".btn",O={CLICK_DATA_API:"click"+E+y,FOCUS_BLUR_DATA_API:(A="focus")+E+y+" blur"+E+y},k=function(){function n(t){this._element=t}var t=n.prototype;return t.toggle=function(){var t=!0,e=!0,n=m(this._element).closest(b)[0];if(n){var i=m(this._element).find(S)[0];if(i){if("radio"===i.type)if(i.checked&&m(this._element).hasClass(C))t=!1;else{var r=m(n).find(w)[0];r&&m(r).removeClass(C)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.coLine truncated
|
||||
//# sourceMappingURL=bootstrap.min.js.map
|
||||
Vendored
+2
@@ -0,0 +1,2 @@
|
||||
/*! jQuery v3.3.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector | (c) JS Foundation and other contributors | jquery.org/license */
|
||||
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,u=n.push,s=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,d=f.toString,p=d.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},v=function e(t){return null!=t&&t===t.window},y={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in y)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function b(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var x="3.3.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",w=function(e,t){return new w.fn.init(e,t)},C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:x,constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},u=1,s=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[u]||{},u++),"object"==typeof a||g(a)||(a={}),u===s&&(a=this,u--);u<s;u++)if(null!=(e=arguments[u]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+(x+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&d.call(n)===p)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(T(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(T(Object(e))?w.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:s.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,u=!n;o<a;o++)(r=!t(e[o],o))!==u&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,u=[];if(T(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&u.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&u.push(i);return a.apply([],u)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function T(e){var t=!!e&&"length"in e&&e.length,n=b(e);return!g(e)&&!v(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,u,s,l,c,f,d,p,h,g,v,y,m,b,x="sizzle"+1*new Date,w=e.document,C=0,T=0,E=ae(),N=ae(),k=ae(),A=function(e,t){return e===t&&(f=!0),0},D={}.hasOwnProperty,S=[],L=S.pop,j=S.push,q=S.push,O=S.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},H="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",I="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",B="\\["+I+"*("+R+")(?:"+I+"*([*^$|!~]?=)"+I+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+I+"*\\]",M=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+B+")*)|.*)\\)|)",W=new RegExp(I+"+","g"),$=new RegExp("^"+I+"+|((?:^|[^\\\\])(?:\\\\.)*)"+I+"+$","g"),F=new RegExp("^"+I+"*,"+I+"*"),z=new RegExp("^"+I+"*([>+~]|"+I+")"+I+"*"),_=new RegExp("="+I+"*([^\\]'\"]*?)"+I+"*\\]","g"),U=new RegExp(M),V=new RegExp("^"+R+"$"),X={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+B),PSEUDO:new RegExp("^"+M),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\Line truncated
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
/*
|
||||
Copyright (C) Federico Zivolo 2018
|
||||
Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
|
||||
*/(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function r(e){return 11===e?re:10===e?pe:re||pe}function p(e){if(!e)return document.documentElement;for(var o=r(10)?document.body:null,n=e.offsetParent;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e?e.ownerDocument.documentElement:document.documentElement}function s(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function d(e){return null===e.parentNode?e:d(e.parentNode)}function a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return s(l)?l:p(l);var f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function l(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',n=e.nodeName;if('BODY'===n||'HTML'===n){var i=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||i;return r[o]}return e[o]}function f(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],n=l(t,'top'),i=l(t,'left'),r=o?-1:1;return e.top+=n*r,e.bottom+=n*r,e.left+=i*r,e.right+=i*r,e}function m(e,t){var o='x'===t?'Left':'Top',n='Left'==o?'Right':'Bottom';return parseFloat(e['border'+o+'Width'],10)+parseFloat(e['border'+n+'Width'],10)}function h(e,t,o,n){return $(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll'+e],r(10)?o['offset'+e]+n['margin'+('Height'===e?'Top':'Left')]+n['margin'+('Height'===e?'Bottom':'Right')]:0)}function c(){var e=document.body,t=document.documentElement,o=r(10)&&getComputedStyle(t);return{height:h('Height',e,t,o),width:h('Width',e,t,o)}}function g(e){return le({},e,{right:e.left+e.width,bottom:e.top+e.height})}function u(e){var o={};try{if(r(10)){o=e.getBoundingClientRect();var n=l(e,'top'),i=l(e,'left');o.top+=n,o.left+=i,o.bottom+=n,o.right+=i}else o=e.getBoundingClientRect()}catch(t){}var p={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},s='HTML'===e.nodeName?c():{},d=s.width||e.clientWidth||p.right-p.left,a=s.height||e.clientHeight||p.bottom-p.top,f=e.offsetWidth-d,h=e.offsetHeight-a;if(f||h){var u=t(e);f-=m(u,'x'),h-=m(u,'y'),p.width-=f,p.height-=h}return g(p)}function b(e,o){var i=2<arguments.length&&void 0!==arguments[2]&&arguments[2],p=r(10),s='HTML'===o.nodeName,d=u(e),a=u(o),l=n(e),m=t(o),h=parseFloat(m.borderTopWidth,10),c=parseFloat(m.borderLeftWidth,10);i&&'HTML'===o.nodeName&&(a.top=$(a.top,0),a.left=$(a.left,0));var b=g({top:d.top-a.top-h,left:d.left-a.left-c,width:d.width,height:d.height});if(b.marginTop=0,b.marginLeft=0,!p&&s){var y=parseFloat(m.marginTop,10),w=parseFloat(m.marginLeft,10);b.top-=h-y,b.bottom-=h-y,b.left-=c-w,b.right-=c-w,b.marginTop=y,b.marginLeft=w}return(p&&!i?o.contains(l):o===l&&'BODY'!==l.nodeName)&&(b=f(b,o)),b}function y(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,n=b(e,o),i=$(o.clientWidth,window.innerWidth||0),r=$(o.clientHeight,window.innerHeight||0),p=t?0:l(o),s=t?0:l(o,'left'),d={top:p-n.top+n.marginTop,left:s-n.left+n.marginLeft,width:i,height:r};return g(d)}function w(e){var n=e.nodeName;return'BODY'===n||'HTML'===n?!1:'fixed'===t(e,'position')||w(o(e))}function E(e){if(!e||!e.parentElement||r())return document.documentElement;for(var o=e.parentElement;o&&'none'===t(o,'transform');)o=o.parentElement;return o||document.documentElement}function v(e,t,i,r){var p=4<arguments.length&&void 0!==arguments[4]&&arguments[4],s={top:0,left:0},d=p?E(e):a(e,t);if('viewport'===r)s=y(d,p);else{var l;'scrollParent'===r?(l=n(o(t)),'BODY'===l.nodeName&&(l=e.ownerDocument.documentElement)):'window'===r?l=e.ownerDocument.documentElement:l=r;var f=b(l,d,p);if('HTML'===l.nodeName&&!w(d)){var m=c(),h=m.height,g=m.width;s.top+=f.top-f.marginTop,s.bottom=h+f.top,s.left+=f.left-f.marginLeft,s.right=g+f.left}else s=f}return s.left+=i,s.top+=i,s.right-=i,s.bottom-=i,s}function x(e){var t=e.width,o=e.height;return t*o}function O(e,t,o,n,i){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=v(o,n,r,i),s={top:{width:p.width,height:t.top-p.top},right:{Line truncated
|
||||
//# sourceMappingURL=popper.min.js.map
|
||||
@@ -0,0 +1,48 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
<!-- Bootstrap CSS -->
|
||||
<link rel="stylesheet" href="/static/css/bootstrap.min.css" crossorigin="anonymous">
|
||||
|
||||
<link rel="stylesheet" href="/static/css/test.css">
|
||||
<title>DNSPy2: Electric Boogaloo</title>
|
||||
</head>
|
||||
<body class='body'>
|
||||
<div class="navbar myNav">
|
||||
<div class="container" style="width: 100%">
|
||||
<h3>DNSPy2: Electric Boogaloo
|
||||
<form action="/" method='post'></h3>
|
||||
<label class='allmostbiggertext'><span style="display:inline-block; width: 40px;"></span>Domain Name:
|
||||
<input type='Text' name='domain'>
|
||||
<input type='Submit'>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container records justify-content-between row col-centered" style="width: 70%;">
|
||||
<div class="column rounded">
|
||||
<b>Whois Information:</b>
|
||||
{% for key, value in whois.iteritems() %}
|
||||
<li><b>{{ key }} </b> - {{ value }}</li>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="buffer">
|
||||
</div>
|
||||
<div class="column rounded">
|
||||
<b>DNS Records</b>
|
||||
{% for key, value in dnsinfo.iteritems() %}
|
||||
<li><b>{{ key }} </b> - {{ value }}</li>
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- Optional JavaScript -->
|
||||
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
|
||||
<script src="/static/js/jquery-3.3.1.slim.min.js" crossorigin="anonymous"></script>
|
||||
<script src="/static/js/popper.min.js" crossorigin="anonymous"></script>
|
||||
<script src="/static/js/bootstrap.min.js" crossorigin="anonymous"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user