• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Go语言实现的简单网络端口扫描方法

    本文实例讲述了Go语言实现的简单网络端口扫描方法。分享给大家供大家参考。具体实现方法如下:

    复制代码 代码如下:
    package main
    import (
     "net"
     "fmt"
     "os"
     "runtime"
     "time"
     "strconv"
    )

    func loop(startport, endport int, inport chan int) {
      for i := startport; i = endport; i++{
       inport - i
      }
    }

    func scanner(inport, outport, out chan int, ip net.IP, endport int){
     for{
      in := - inport
      //fmt.Println(in)
      tcpaddr := net.TCPAddr{ip,in}
      conn, err := net.DialTCP("tcp", nil, tcpaddr)
      if err != nil {
       outport - 0
      }else{
       outport - in
      }
      conn.Close()
      if in == endport{
       out - in
      }
     }
    }

    func main() {
     starttime := time.Now().Unix()
     runtime.GOMAXPROCS(4)
     inport := make(chan int)
     outport := make(chan int)
     out := make(chan int)
     collect := []int{}
     if len(os.Args) != 4 {
      fmt.Println("Usage: scanner.exe IP startport endport")
      fmt.Println("Endport must be larger than startport")
      os.Exit(0)
     }
     ip := net.ParseIP(os.Args[1])
     if(os.Args[3] os.Args[2]) {
      fmt.Println("Usage: scanner IP startport endport")
      fmt.Println("Endport must be larger than startport")
      os.Exit(0)
     }
     startport, _:= strconv.Atoi(os.Args[2])
     endport, _ := strconv.Atoi(os.Args[3])
     go loop(startport, endport, inport)
     for{
      select {
       case -out:
        fmt.Println(collect)
        endtime := time.Now().Unix()
        fmt.Println("The scan process has spent ",endtime-starttime,"second")
        os.Exit(0)
       default:
        go scanner(inport, outport, out, ip, endport)
        port := - outport
        
        if port != 0{
         collect = append(collect, port)
        }
      }  
     }
    }

    希望本文所述对大家的Go语言程序设计有所帮助。

    您可能感兴趣的文章:
    • go语言制作端口扫描器
    • GO语言实现的端口扫描器分享
    • go 实现简易端口扫描的示例
    上一篇:Go语言实现选择法排序实例
    下一篇:Go语言生成随机数的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Go语言实现的简单网络端口扫描方法 语言,实现,的,简单,网络,