美文网首页
golang 高效端口扫描

golang 高效端口扫描

作者: 郭青耀 | 来源:发表于2020-12-02 00:03 被阅读0次

废话少说,直接上源码,需要注意几点在源码后有说明。

package main

import (
    "fmt"
    "net"
    "os"
    "sync"
    "time"
)

var wg = sync.WaitGroup{}

func main() {
    svcs := []string{"127.0.0.1:8088", "127.0.0.1:8340", "127.0.0.1:8350", "127.0.0.1:8351", "127.0.0.1:8353", "127.0.0.1:8355", "127.0.0.1:8354"}

    //loopMax := len(svcs)
    limitGrouting := 1000
    ch := make(chan struct{}, limitGrouting)
    defer close(ch)

    for _, svc := range svcs {
        go DailUnit(ch, svc)
    }
    wg.Wait()
}

func DailUnit(ch chan struct{}, svc string) {
    defer wg.Done()
    wg.Add(1)
    ch <- struct{}{}
    conn, err := net.DialTimeout("tcp", svc, time.Second)
    if err != nil {
        fmt.Fprintf(os.Stderr, "server %s dail error: %s\n", svc, err.Error())
        <-ch
        return
    }
    fmt.Println(svc + "dail ok")
    conn.Close()
    <-ch
}

  • 这里使用的带缓冲的channal,控制协程的数量limitGrouting。
  • sync.WaitGroup为了是所有输出都能打印出来。
  • DialTimeout的具体时间,可以根据自己的网络情况设置。
  • 注意在DailUnit,错误返回前,也要将读取通道,否则带缓冲的通道就会被端口不通的异常场景写满,导致程序阻塞。
  • 端口开放场景,最好关闭连接

相关文章

  • golang 高效端口扫描

    废话少说,直接上源码,需要注意几点在源码后有说明。 这里使用的带缓冲的channal,控制协程的数量limitGr...

  • python高效端口扫描

    这次我们使用python-nmap包进行计算机端口扫描,有liunux基础的同学一定知道nmap的强大,不废话,上...

  • 2.端口扫描

    udp 端口扫描 nmap -sU 192.168.1.17 -p-tcp 端口扫描 syn 隐蔽端口扫描(建立不...

  • go proxy 最快捷的代理抓取工具

    golang-proxy v2.0 Golang-Proxy -- 简单高效的免费代理抓取工具通过抓取网络上公开的...

  • Golang 变量的花式写法

    Golang 变量的花式写法 golang也就是我们常说的go语言。以c++的高效和python,ruby的书写便...

  • 如何在 CentOS 8 上安装 Go

    Go(通常称为golang)是Google创建的一种现代开源编程语言,可让您构建可靠且高效的应用程序。Golang...

  • 对比学习:Golang VS Python3

    Golang和Python都是目前在各自领域最流行的开发语言之一。 Golang其高效而又友好的语法,赢得了很多后...

  • 对比学习:Golang VS Python3

    Golang和Python都是目前在各自领域最流行的开发语言之一。 Golang其高效而又友好的语法,赢得了很多后...

  • Go 实现 TCP 端口扫描器

    因为 Go 原生支持高并发,所以可以用高效的协程goroutine 来实现一个TCP 端口扫描器。 这里通过互斥锁...

  • 网络攻防期末考(理论)

    (一直蒟蒻的小萌新 ╮(╯▽╰)╭) 1.什么是端口扫描? 端口扫描是指某些别有用心的人发送一组端口扫描消息,试图...

网友评论

      本文标题:golang 高效端口扫描

      本文链接:https://www.haomeiwen.com/subject/uvoewktx.html