-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