从0开始学go语言做安全开发(留坑)


端口扫描器

TCP全连接端口扫描器

主要使用到了go语言的net包提供的Dial与DialTimeout函数,后者增加了超时时长,这里输入接收到的ip和port进行tcp连接,超时时长2s

package main

import (
    "fmt"
    "net"
    "time"
)

func main() {
    var ip, port string
    fmt.Scanln(&ip, &port)
    conn, err := net.DialTimeout("tcp", fmt.Sprintf("%v:%v", ip, port), 2*time.Second)
    if err == nil {
        conn.Close()
        fmt.Printf("success!")
    } else {
        fmt.Println("sorry")
    }
}

但是以上的代码仅仅能实现一个ip,一个port的扫描,需要满足以下ip形式:

10.0.0.1

10.0.0.1/24

10.0.0.*

10.0.0.1-10

10.0.0.1,10.0.0.1-10,10.0.0.1/24,10.0.0.*


文章作者: Lightning
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Lightning !
评论
  目录