[384] 2021-03-02_go语言实现端口扫描

文档创建者:s7ckTeam
浏览次数:10
最后更新:2025-01-16
2021-03-02_go语言实现端口扫描 g o   a F a   a F a   2 0 2 1 - 0 3 - 0 2   # G o l a n g   , 1 6 T C P 使 g o 1 s y n 2 s y n - a c k 3 a c k
1 s y n 2 r s t 1 s y n g o n e t d i a l t c p u d p u n i x   s o c k e t s i p n i l p a c k a g e   m a i n i m p o r t   (     " f m t "     " n e t " ) f u n c   m a i n ( )   {     _ ,   e r r   : =   n e t . D i a l ( " t c p " ,   " s c a n m e . n m a p . o r g : 8 0 " )     i f   e r r   = =   n i l   {         f m t . P r i n t l n ( " C o n n e c t i o n   s u c c e s s f u l " )     } }
f o r 使 g o r o u t i n e 线 } p a c k a g e   m a i n i m p o r t   (     " f m t "     " n e t " ) f u n c   m a i n ( )   {     f o r   i   : =   1 ;   i   < =   1 0 2 4 ;   i + +   {         a d d r e s s   : =   f m t . S p r i n t f ( " s c a n m e . n m a p . o r g : % d " ,   i )         c o n n ,   e r r   : =   n e t . D i a l ( " t c p " ,   a d d r e s s )         i f   e r r   ! =   n i l   {             c o n t i n u e         }         c o n n . C l o s e ( )         f m t . P r i n t f ( " % d   o p e n n " ,   i )     } } p a c k a g e   m a i n i m p o r t   (     " f m t "     " n e t "     " s y n c " ) f u n c   m a i n ( )   {     v a r   w g   s y n c . W a i t G r o u p     f o r   i   : =   1 ;   i   < =   1 0 2 4 ;   i + +   {         w g . A d d ( 1 )         g o   f u n c ( j   i n t )   {             d e f e r   w g . D o n e ( )             a d d r e s s   : =   f m t . S p r i n t f ( " s c a n m e . n m a p . o r g : % d " ,   j )             c o n n ,   e r r   : =   n e t . D i a l ( " t c p " ,   a d d r e s s )             i f   e r r   ! =   n i l   {                 r e t u r n             }             c o n n . C l o s e ( )             f m t . P r i n t f ( " % d   o p e n n " ,   j )         } ( i )     }
g o r o u t i n e g o r o u t i n e w o r k e r 线     w g . W a i t ( ) } p a c k a g e   m a i n i m p o r t   (     " f m t "     " n e t "     " s o r t "     " t i m e " ) f u n c   w o r k e r ( p o r t s ,   r e s u l t s   c h a n   i n t )   {     f o r   p   : =   r a n g e   p o r t s   {         a d d r e s s   : =   f m t . S p r i n t f ( " s c a n m e . n m a p . o r g : % d " ,   p )         c o n n ,   e r r   : =   n e t . D i a l ( " t c p " ,   a d d r e s s )         i f   e r r   ! =   n i l   {             r e s u l t s   < -   0             c o n t i n u e         }         c o n n . C l o s e ( )         r e s u l t s   < -   p     } } f u n c   m a i n ( )   {     t   : =   t i m e . N o w ( )     p o r t s   : =   m a k e ( c h a n   i n t ,   1 0 0 )     r e s u l t s   : =   m a k e ( c h a n   i n t )     v a r   o p e n p o r t s   [ ] i n t     f o r   i   : =   0 ;   i   <   c a p ( p o r t s ) ;   i + +   {         g o   w o r k e r ( p o r t s ,   r e s u l t s )     }     g o   f u n c ( )   {         f o r   i   : =   1 ;   i   < =   1 0 2 4 ;   i + +   {             p o r t s   < -   i         }     } ( )     f o r   i   : =   0 ;   i   <   1 0 2 4 ;   i + +   {         p o r t   : =   < - r e s u l t s         i f   p o r t   ! =   0   {             o p e n p o r t s   =   a p p e n d ( o p e n p o r t s ,   p o r t )         }     }
线     c l o s e ( p o r t s )     c l o s e ( r e s u l t s )     s o r t . I n t s ( o p e n p o r t s )     f o r   _ ,   p o r t   : =   r a n g e   o p e n p o r t s   {         f m t . P r i n t f ( " % d   o p e n n " ,   p o r t )     }     f m t . P r i n t l n ( t i m e . S i n c e ( t ) ) }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则