tcp端口扫描器

 1 package tcpScanner
 2 
 3 import (
 4     "fmt"
 5     "net"
 6     "sort"
 7 )
 8 
 9 /*
10 多通道通信
11 */
12 
13 func workerL(ports, results chan int) {
14     for p := range ports {
15         addr := fmt.Sprintf("124.223.113.130:%d", p)
16         conn, err := net.Dial("tcp", addr)
17         if err != nil {
18             results <- 0
19             continue
20         }
21         conn.Close()
22         results <- p
23     }
24 }
25 
26 func Demo5() {
27     ports := make(chan int, 100)
28     results := make(chan int)
29 
30     var openports []int
31 
32     for i := 0; i < cap(ports); i++ {
33         go workerL(ports, results)
34     }
35     go func() {
36         for i := 0; i < 65535; i++ {
37             ports <- i
38         }
39     }()
40     for i := 0; i < 65535; i++ {
41         port := <-results
42         if port != 0 {
43             openports = append(openports, port)
44         }
45     }
46     close(ports)
47     close(results)
48     sort.Ints(openports)
49 
50     for _, port := range openports {
51         fmt.Printf("%d open\n", port)
52     }
53 }
1 package main
2 
3 import "tcpScanner/tcpScanner"
4 
5 func main() {
6     tcpScanner.Demo5()
7 }

 

posted @ 2023-03-06 10:55  像素飞行员  阅读(14)  评论(0编辑  收藏  举报