[PERL] Сканер портов. Требуется помощь

Discussion in 'PHP' started by Sharky, 3 Nov 2008.

  1. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    Есть сканер портов на перле...сканит диапазон ипов на один открытый порт...скорость откровенно крейсерная... поправьте ошибки и помогите прикрутить многопоточность
    Code:
    #!/usr/bin/perl
    
    use IO::Socket;
    use threads;
    use threads::shared;
    print "Enter Start Host: ";
    my $startip=<STDIN>;
    print "Enter End Host: ";
    my $endip=<STDIN>;
    
    checkrange();
    sub checkrange 
    {
    print "\n Start scaning...\n\n";
    my @flist=split(/\./, $startip);
    my @tlist=split(/\./, $endip);
    my $fip=$flist[0]*256*256*256+$flist[1]*256*256+$flist[2]*256+$flist[3];
    my $tip=$tlist[0]*256*256*256+$tlist[1]*256*256+$tlist[2]*256+$tlist[3];
    
    
    for (my $i=$fip; $i<=$tip; $i++) {
    	my $tmp=$i;
    	my $d1=int($tmp / (256*256*256)); $tmp=$tmp-$d1*(256*256*256);
    	my $d2=int($tmp / (256*256)); $tmp=$tmp-$d2*(256*256);
    	my $d3=int($tmp / 256); $tmp=$tmp-$d3*256;
    	my $d4=$tmp;
    	my $ip="$d1.$d2.$d3.$d4";  
    	sock($ip);
    } 
    	sub sock {	
    	my $sock = new IO::Socket::INET 
    		(
    		PeerAddr => $_[0],
       		PeerPort => '80', 
       		PeerProto => 'tcp', 
       		t => '5',
    		);
    		if($sock) { 
    		           print "$_[0] is Good\n"; 
    				  }else{ 
    				   print"$_[0] is Bad\n"
    				  } 
    				  }
    				  
    			}
    print "Scaning finished. Press Enter to exit.";
     $exit = <STDIN>;
    
    
     
  2. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Тут недавно вроде как уже был подобный вопрос...исходники тоже есть)
     
  3. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    я прошу поправить конкретно мой случай
     
  4. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    люди ну ап в конце концов...репой не обижу
     
  5. PHPoozy

    PHPoozy Elder - Старейшина

    Joined:
    1 Jul 2008
    Messages:
    149
    Likes Received:
    31
    Reputations:
    -22
    ненавижу перл! перл учат лохи. (c) KSURi.
     
  6. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    230
    Чоткие пасаны все кодят на асме?
     
    _________________________
  7. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    Kaimi ты же прошарен в перле...помоги новичку освоиться в нём
     
  8. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Нене...чоткее пасаны ждут похапе 6 и собираются кодить на нем... =\
     
  9. Spyder

    Spyder Elder - Старейшина

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    чоткие патсаны на кубейсеке кодят
    какой то страшный код, особенно вот это повергло в шок
    my $fip=$flist[0]*256*256*256+$flist[1]*256*256+$flist[2]*256+$flist[3];
    =\\\ это что за пздц? я даже код боюсь разбирать

    Помню слип писал небольшой сканер ипов по порту, поищи
    Мб канеш с этим кто то поможет, но не я =(
     
    1 person likes this.
  10. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    230
    Меня пугает код) + Дофига сканеров портов по диапазону быстрых, зачем именно на перле
     
    _________________________
  11. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    ну вот мне нужен конкретно на перле...мож у кого сорцы завалялись? ну или поправьте этот в конце концов..он работает..нужно только могопоточность прикрутить
     
  12. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    230
    Code:
    use warnings;
    use IO::Socket;
    use threads;
    use threads::shared;
    
    print "Enter Start Host: ";
    my $startip	= <>;
    print "\nEnter End Host: ";
    my $endip	= <>;
    print "\nThreads number: ";
    my $thr 	= <>;
    
    print "\n Start scaning...\n\n";
    my @flist=split(/\./, $startip);
    my @tlist=split(/\./, $endip);
    my $fip=$flist[0]*256*256*256+$flist[1]*256*256+$flist[2]*256+$flist[3];
    my $tip=$tlist[0]*256*256*256+$tlist[1]*256*256+$tlist[2]*256+$tlist[3];
    
    my $i : shared = $fip;
    my @trl;
    
    for(0..$thr) {$trl[$_] = threads->create(\&checkrange, $_);}
    for(@trl)   { $_->join; }
    
    sub checkrange 
    {
    while($i<=$tip) {
    	my $tmp;
    	{lock($i); $i++; $tmp=$i;}
    	my $d1=int($tmp / (256*256*256)); $tmp=$tmp-$d1*(256*256*256);
    	my $d2=int($tmp / (256*256)); $tmp=$tmp-$d2*(256*256);
    	my $d3=int($tmp / 256); $tmp=$tmp-$d3*256;
    	my $d4=$tmp;
    	my $ip="$d1.$d2.$d3.$d4";  
    	sock($ip);
    	} 			  
    }
    sub sock {
    my $ip = shift;	
    my $sock = new IO::Socket::INET 
    		(
    		PeerAddr => $ip,
       		PeerPort => '80', 
       		PeerProto => 'tcp', 
       		t => '5',
    		);
    print $sock ? ("$ip is Good\n") : ("$ip is Bad\n");
    }
    print "Scaning finished. Press Enter to exit.";
    $exit = <STDIN>;
    
    
     
    _________________________
  13. zer0ska

    zer0ska Elder - Старейшина

    Joined:
    5 Dec 2007
    Messages:
    103
    Likes Received:
    9
    Reputations:
    0
    Один из лучших сканеров портов написан на перл а точнее nmap
    Я бы на вашем месте посмотрел его исходники.
     
  14. Spyder

    Spyder Elder - Старейшина

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    zer0ska
    Written in C, C++, Python
     
  15. [Raz0r]

    [Raz0r] Elder - Старейшина

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
    да ладно :D
     
  16. PHPoozy

    PHPoozy Elder - Старейшина

    Joined:
    1 Jul 2008
    Messages:
    149
    Likes Received:
    31
    Reputations:
    -22
    Perl умер в 2003 году.
     
  17. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    Kaimi не корректно работает...почему то всегда 10 потоков :(
     
  18. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    230
    Серверную винду поставь... или патч стек tcp/ip
     
    _________________________
  19. PHPoozy

    PHPoozy Elder - Старейшина

    Joined:
    1 Jul 2008
    Messages:
    149
    Likes Received:
    31
    Reputations:
    -22
    пёрл умрет. останутся лишь интерпритаторы и все.
     
  20. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    230
    Точно, давайте дружно песать на яве
     
    _________________________
Loading...