2020-07-15 19:28:36 +02:00
import sys
import random
import datetime
import urllib . request
def main_loop ( ) :
2020-07-21 00:00:09 +02:00
json_object = [ ]
2020-07-15 19:28:36 +02:00
for i in range ( times ) :
url = url_generator ( domains , log )
try :
response = urllib . request . urlopen ( url )
print ( url + " exists! " )
2020-07-21 00:00:09 +02:00
json_object . append ( ' { " website_url " : " ' + url + ' " , " response_type " : " SUCCESS " , " response_code " : " ' + str ( response . getcode ( ) ) + ' " , " response_details " : " Server seems to be ' + str ( response . info ( ) [ " Server " ] ) + ' " } ' )
2020-07-15 19:28:36 +02:00
except Exception as e :
if " [Errno 11001] " in str ( e ) : continue
print ( url + " exists! " )
2020-07-21 00:00:09 +02:00
err_code = str ( e ) [ str ( e ) . index ( " [ " ) + 1 : str ( e ) . index ( " ] " ) ] if " [ " in str ( e ) and " ] " in str ( e ) else " NONE FOUND "
json_object . append ( ' { " website_url " : " ' + url + ' " , " response_type " : " ERROR " , " response_code " : " ' + err_code + ' " , " response_details " : " ' + str ( e ) . replace ( " \\ " , " " ) + ' " } ' )
2020-07-15 19:28:36 +02:00
2020-07-21 00:00:09 +02:00
f . write ( str ( json_object ) . replace ( " ' " , " " ) )
2020-07-15 19:28:36 +02:00
f . close ( )
print ( " Finished at " + str ( datetime . datetime . now ( ) . time ( ) ) [ 0 : 5 ] . replace ( " : " , " h " ) + " m " )
def url_generator ( domains , log ) :
result = mode [ random . randint ( 0 , len ( mode ) - 1 ) ] + " :// "
characters = " abcdefghijklmnopqrstuvwxyz0123456789 "
url_length = random . randint ( 2 , 30 )
result + = ' ' . join ( random . choice ( characters ) for i in range ( url_length ) )
result + = domains [ random . randint ( 0 , len ( domains ) - 1 ) ]
if log : print ( result )
return result
times = sys . argv [ sys . argv . index ( ' -t ' ) + 1 ] if ' -t ' in sys . argv else 3000
try :
times = int ( times )
except :
print ( " -t argument expected a number! " )
sys . exit ( )
2020-07-21 00:00:09 +02:00
domains = sys . argv [ sys . argv . index ( ' -d ' ) + 1 ] if ' -d ' in sys . argv else [ ' .co ' , ' .com ' , ' .net ' , ' .edu ' , ' .gov ' , ' .cn ' , ' .org ' , ' .cc ' ]
2020-07-15 19:28:36 +02:00
mode = sys . argv [ sys . argv . index ( ' -m ' ) + 1 ] . split ( " , " ) if ' -m ' in sys . argv else [ ' http ' ]
log = ' -l ' in sys . argv
print ( " \n I am going to look for images through " + str ( times ) + " random URLs with the following domains: " + str ( domains ) )
print ( " These URLs use the following protocols: " + str ( mode ) )
print ( " Started at " + str ( datetime . datetime . now ( ) . time ( ) ) [ 0 : 5 ] . replace ( " : " , " h " ) + " m " )
2020-07-21 00:00:09 +02:00
f = open ( " PY_report_ " + str ( datetime . datetime . now ( ) . strftime ( " %d % H % M " ) ) + " .json " , " a+ " )
2020-07-15 19:28:36 +02:00
main_loop ( )