-1
我有一個Perl腳本,應該掃描多達400k行。它有時會停止,沒有任何錯誤消息。如何解決這個問題?Perl腳本在一段時間後停止工作
這裏是我的代碼,編輯
#!/usr/bin/perl
# M-A_labz
# Modules
use HTTP::Request;
use strict;
use Win32::Console::ANSI;
use warnings;
use LWP::Simple;
use Term::ANSIColor;
if ($^O =~ /Win/) {
system("cls");
system("title Mass Scripts Grabber 0.1");
}
else {
system("clear");
}
$| = 1;
print color("red"), '
';
print color 'reset';
print color("yellow"), "\n\n[+] Enter List File Ips : ";
print color 'reset';
my $host = <STDIN>;
chomp($host);
open (SITE, "<$host") || die "[-] Can't open the List of site file !";
my @SITE = <SITE>;
close SITE;
foreach my $xp (@SITE) {
chomp $xp;
my $ip = $xp;
chomp ($ip);
my %group;
if ($ip !~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/) {
print color("bold white"), "# Skiping $ip\n";
print color 'reset';
}
my $page = 0;
print color("green"), "Working on $ip\n";
print color 'reset';
print color("bold white"), "[#] Begin Reserving !";
print color 'reset';
while (1) {
my $content = get("http://www.bing.com/search?q=ip:$ip&count=50&first=1&FORM=PERE")
or die("Error getting output\n");
my $status = keys %group;
while ($content =~ /<cite>[:\/\/]*([\w\.\-]+)[\w+\/\.\-_:\?=]*<\/cite>/g) {
$group{$1} = undef;
}
last if ($status == keys %group);
$page = $page + 10;
}
print color("bold white"), "\n# OUTPUT for $ip\n";
print color 'reset';
open (IN,">reverse-$ip.txt");
foreach my $host (keys %group) {
print IN "$host\n";
}
close(IN);
open (F, "<reverse-$ip.txt")
|| die "[-] Can't open the List Of Domains Names!";
my @DOMAINS = <F>;
close F;
foreach my $D (@DOMAINS) {
chomp $D;
print color("bold white"), "[-] $D :[Unknown] \n";
print color 'reset';
}
}
正如你看到的,我掃描多達40萬級的IP。
這裏的一個錯誤是說增加更多細節,我不知道要描述更多。對不起這行毫無意義的行。
發佈你的代碼和你的數據樣本。 – stevieb
這裏是腳本,檢查http://pastebin.com/0eBsmbY0 我也有一些類似的腳本,但他們不使用bing.com。 – Bleron
請將您的代碼在線發佈到Stack Overflow上,作爲您的一部分問題。鏈接可能過時。謝謝! – FlipperPA