PDA

Просмотр полной версии : Scaner port


satana8920
30.04.2008, 08:48
одним хорошеньким весенним деньком я сидел на табуретке и вдруг захотел написать сканер портов
это мой первый релиз так что не бейте ногами

реализован на IO Socket

#!/usr/bin/perl

use Socket;

$ARGC = @ARGV;

if ($ARGC < 2 ) {

print "Port Scanner \n";
print "CODED BY Satana \n";
print "Use : $0 <host> <protocol> \n";
exit;

}

$protoc = $ARGV[1];
print "\nStarting Scan.. \n";
print "Target : $ARGV[0] \n";

for ($port_in = 0; $port_in <= 6000; $port_in++) {
$iaddr = inet_aton($ARGV[0]) || die "Error to connect on Host.($!)";
$paddr = sockaddr_in($port_in, $iaddr);

$proto = getprotobyname($protoc);
socket(SOCK, AF_INET, SOCK_STREAM, $proto);

if (connect(SOCK, $paddr)) {
$servico = getservbyport($port_in, 'tcp');
print "$port_in - $servico - open \n";
close(SOCK);
}
}
print "Scan completed... \n\n";
exit;

/me запостил что бы у него появилась наконец то батарейка :rolleyes: :)

biophreak
30.04.2008, 11:19
1. Запомни для себя use warnings use strict и use diagnostics
2. Для получения аргументов таки удобнее и читаемее юзать чтонить в духе
my $target = shift || usage;

demonoid
30.04.2008, 15:42
одним хорошеньким весенним деньком я сидел на табуретке и вдруг захотел написать сканер портов
это мой первый релиз так что не бейте ногами


ногами бить не будем :)

$ARGC = @ARGV;
Количество аргументов можно получить более лёгким способом


$#ARGV+1
scalar @ARGV

надеюсь это опечатка
print 'CODED BY Satana \n';
Так как при одинарных кавычках не происходит интерполяция , это значит что интерпретатор не обратит внимание на твою эскейп последовательность \n
print "CODED BY Satana \n";

for ($port_in = 0; $port_in <= 6000; $port_in++) {

Как-то не продуманы номера портов .. :)

zythar
30.04.2008, 16:03
лучше бы сделал так чтобы диапазон портов мона была указывать в аргументах.
да и почитай для начала perl underground. для тебя будет полезно

да и каждый в принципе может сесть и написать такой простеньки цикл который устанавливает соединение с сервером и проверяет соединяется ли с конкретным портом прога или нет. и чо? мне щас сесть и написать аналог этого на Си или на РНР, да?

sairo
14.06.2008, 18:05
изобретатель вилосепеда=)