0xspade icon

Reverse IP Lookup

0xspade | PRO | 01/18/18 01:47:05 AM UTC | 0 ⭐ | 1106 👁️ | Never ⏰ | []
Python |

3.27 KB

|

None

|

0 👍

/

0 👎

#!/usr/bin/env python
 
import urllib2, urllib, sys, json
from optparse import OptionParser
 
 
# Terminal Colors
 
class bc:
    P = '\033[95m' # purple
    B = '\033[94m' # Blue
    G = '\033[92m' # Green
    Y = '\033[93m' # Yellow
    R = '\033[91m' # Red
    ENDC = '\033[0m' # end colors
 
if sys.platform == 'win32':
    bc.P = ''
    bc.B = ''
    bc.G = ''
    bc.Y = ''
    bc.R = ''
    bc.ENDC = ''
 
# End of terminal colors
 
 
url = "https://domains.yougetsignal.com/domains.php"
 
contenttype = "application/x-www-form-urlencoded; charset=UTF-8"
 
def banner():
    print bc.B +\
"""+-----------------------------------+
|         Reverse IP Lookup         |
|           By: Joinse7en           |
+-----------------------------------+""" + bc.ENDC
 
def parseArgs():
    # optionparser is kinda gay, will probably change
    parser = OptionParser()
 
    parser.add_option("-t", "--target", dest="target",
                      help="Domain or IP to reverse IP lookup", metavar="TARGET")
 
    parser.add_option("-p", "--proxy", dest="proxy",
                      help="HTTPS proxy to use", metavar="PROXY")
 
    parser.add_option("-a", "--agent", dest="agent",
                      help="Custom User Agent", metavar="AGENT")
 
    
 
    return parser
 
def request(target, httpsproxy=None, useragent=None):
    global contenttype
 
    if not useragent:
        useragent = "Mozilla/5.0 (X11; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0 Iceweasel/22.0"
    else:
        print "["+ bc.G + "+" + bc.ENDC + "] User-Agent: " + useragent
 
    if httpsproxy:
        print "["+ bc.G + "+" + bc.ENDC + "] Proxy: " + httpsproxy + "\n"
        opener = urllib2.build_opener(
                urllib2.HTTPHandler(),
                urllib2.HTTPSHandler(),
                urllib2.ProxyHandler({'http': 'http://' + httpsproxy}))
        urllib2.install_opener(opener)
 
    postdata = [('remoteAddress',target),('key','')]
    postdata = urllib.urlencode(postdata)
 
    request = urllib2.Request(url, postdata)
 
    request.add_header("Content-type", contenttype)
    request.add_header("User-Agent", useragent)
    try:
        result = urllib2.urlopen(request).read()
    except urllib2.HTTPError, e:
        print "Error: " + e.code
    except urllib2.URLError, e:
        print "Error: " + e.args
 
    obj = json.loads(result)
    return obj
 
 
def output(obj):
    print bc.B + "Status:    " +bc.ENDC + obj["status"]
    if obj["status"] == "Fail":
        message = obj["message"].split(". ")
        print bc.R + "Error:     " + bc.ENDC + message[0] + "."
        sys.exit(1)
 
    print bc.B+ "Domains:   " +bc.ENDC+ obj["domainCount"]
    print bc.B+ "Target:    " +bc.ENDC+ obj["remoteAddress"]
    print bc.B+ "Target IP: " +bc.ENDC+ obj["remoteIpAddress"]
 
    print "\n" + bc.P + "Results:" + bc.ENDC
 
    for domain, hl in obj["domainArray"]:
        print bc.G + domain + bc.ENDC
 
 
def main():
    banner()
    parser = parseArgs()
    (options, args) = parser.parse_args()
 
    if len(sys.argv) < 2:
        parser.print_help()
        print "Examples:\n"
        print sys.argv[0] + " --target domain.com"
        print sys.argv[0] + " --target domain.com --proxy 192.168.0.1:8080"
        print sys.argv[0] + " --target domain.com --agent \"Googlebot/2.1 (+http://www.googlebot.com/bot.html)\""
 
        sys.exit()
 
    target = options.target
    print "\n"
    obj = request(target, options.proxy, options.agent)
    output(obj)
 
 
if __name__ == "__main__":
    try:
        main()
    except KeyboardInterrupt:
        print "["+ bc.R + "!" + bc.ENDC + "] KeyboardInterrupt detected!\nGoodbye..."
        sys.exit()

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎