sub scan {
my ($ip)=@_;
for (my $i = $1; $i <=$#PORTS; $i++) {
check_port($ip, $PORTS[$i]);
next;
}
}
sub check_port {
my ($iaddr, $port) = @_;
printf "+%s: Scan For %s\n", $iaddr, $port;
my $sock = IO::Socket::INET->new(PeerAddr => $iaddr,
PeerPort => $port,
Timeout => 0.4) or print bleh;
if ($sock) { my $grab = grab($sock); printf "+%s: ==> %s Active : %s\n", $iaddr, $port, $grab; }
close $sock;
}
sub check_port2 {
my ($iaddr, $port) = @_;
printf "+%s: Scan For %s\n", $iaddr, $port;
my $proto = getprotobyname('tcp');
my $paddr = sockaddr_in($port, inet_aton($iaddr));
socket(SOCKET, PF_INET, SOCK_STREAM, $proto);
connect(SOCKET, $paddr);
if (<SOCKET>) { my $grab = grab(SOCKET); printf " ==> %s Active : %s\n", $iaddr, $port, $grab; }
}
sub grab { return <$_>; }
sub ping {
my ($ip) = @_;
my $p = Net::Ping->new("icmp");
print "Ping $host";
print "NOT " unless $p->ping($host, 2);
print "alive.\n";
$p->close(); }
sub make_ports {
my @port_strings = split(/,/, shift);
my @ports;
foreach (@port_strings) {
if (/(\d+)-(\d+)/) {
for (my $i = $1; $i <= $2; $i++) { push(@ports, $i); }
} else { push(@ports, $_); }
}
return @ports; }
sub make_ip {
my $ip = shift;
my $fonc = shift;
if (defined $fonc) {
open(IPLIST, $ip) or die "Unable to open iplist: $!";
@IP = <IPLIST>;
close(IPLIST);
chomp(@IP);
} else {
if ($ip=~/\-/) { ($IP1,$IP2)=split(/\-/,$ip); ($IP11,$IP12,$IP13,$IP14)=split(/\./,$IP1); ($IP21,$IP22,$IP23,$IP24)=split(/\./,$IP2);
$i = $IP14;
LOOP:
while($i<=$IP24) {
$i++;
my $ipaddr="$IP11.$IP12.$IP13.$i";
push(@IP, $ipaddr);
}
if ($IP13<$IP23) { $IP13++; $i = 1; goto LOOP }
} else { push(@IP, $ip); }
}
return @IP; }
je voudrait pouvoir créer plusieur socket, j ai essailler en assignant chaque socket dans un scalar mais sans resultat, j ai essailler avec la lib Thread mais elle bouffe le cpu, si kelkun pourrait m aider sa srait vraiment cool
bonjour, est ce un scanner de port ce que tu as programmé, si c'est le cas il ne marche pas sur mon ordinateur, je ne sais pas pourquoi il n'écrit que les premières lignes et il s'arrête , donc si tu peux m'aider je te serai tés reconnaissant car j'en ai vraiment besoin. merci.