use warnings; use Getopt::Std; use URI; use LWP::UserAgent; use HTTP::Request; use Yahoo::Search; use Net::Whois::Raw; use Net::DNS; use HTML::LinkExtractor; use Try::Tiny; use XML::Simple; use XML::DOM; use XML::XPath; use XML::XPath::XMLParser; use URI::Escape; use MIME::Base64; use Digest::HMAC_SHA1 qw(hmac_sha1); use Data::Dumper; use Siteminer; use CGI; use threads; # # Global Variables # # my %DEBUG = ( "addDomain" => 1, "getWhois" => 1, "domainOwner" => 1, "netcraftMine" => 1, "yahooMine" => 1, "intTLDSearch" => 1, "alexaRank" => 1, "hostMine" => 1, "yahooLinks" => 1, "bingMine" => 1, "pageRank" => 1, "pullData" => 1, "addHostname" => 1, ); # # Amazon AWIS Account Keys # my $AWIS_ACCESS_KEY_ID = "XXXXXXXXXXXXXXXXXXx"; my $AWIS_SECRET_ACCESS_KEY = "XXXXXXXXXXXXXXXXXXx"; my $AWIS_SERVICE_ENDPOINT = "XXXXXXXXXXXXXXXXXXx"; my $AWIS_ACTION = "XXXXXXXXXXXXXXXXXXx"; # # command line arguements # #chomp($name = param("uid")); my %opts = (); getopts('hvd:', \%opts) || usage(); my $user_id= $ARGV[0]; my $owner_email = ""; $Net::Whois::Raw::OMIT_MSG = 1; # # Main # main(); #my $thr1=threads->create(\&main); sub main { # # Check arguments # usage() if ($opts{h} || ! $opts{d}); # # check if domain name is valid # if (! domainNameIsValid(DOMAIN=>$opts{d})) { print STDERR "\nError: Domain Name invalid (example: foo.com)\n"; usage(); } $owner_email = addDomain(DOMAIN=>$opts{d}, ORIGIN=>$opts{d}) || ""; netcraftMine(DOMAIN=>$opts{d}); # # Search Yahoo (Deprecated) # #yahooMine(DOMAIN=>$opts{d}); while(my @hostnames = Siteminer::Hosts->search('done' => '0')) { hostMine(HOSTS=>\@hostnames, ORIGIN=>$opts{d}); bingMine(HOSTS=>\@hostnames, ORIGIN=>$opts{d}); } while(my @domains = Siteminer::Domains->search('done' => '0', 'owner' => $opts{d})) { foreach my $obj (@domains) { my $domain = $obj->domain; print "DO: $domain\n"; netcraftMine(DOMAIN=>$domain); # # Yahoo (Deprecated) # #yahooMine(DOMAIN=>$domain); while(my @hostnames = Siteminer::Hosts->search('done' => '0')) { hostMine(HOSTS=>\@hostnames, ORIGIN=>$opts{d}); bingMine(HOSTS=>\@hostnames, ORIGIN=>$opts{d}); } $obj->done(1); $obj->update; } } }