国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Golang > 正文

Go語言實現(xiàn)的簡單網(wǎng)絡(luò)端口掃描方法

2020-04-01 19:21:11
字體:
供稿:網(wǎng)友
這篇文章主要介紹了Go語言實現(xiàn)的簡單網(wǎng)絡(luò)端口掃描方法,實例分析了Go語言網(wǎng)絡(luò)程序的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
 

本文實例講述了Go語言實現(xiàn)的簡單網(wǎng)絡(luò)端口掃描方法。分享給大家供大家參考。具體實現(xiàn)方法如下:

 

復(fù)制代碼代碼如下:
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語言程序設(shè)計有所幫助。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 玉林市| 乌兰察布市| 林口县| 洪洞县| 竹溪县| 嵊泗县| 和静县| 九龙县| 新沂市| 三穗县| 额济纳旗| 城固县| 平遥县| 吉林省| 林周县| 越西县| 郑州市| 阳谷县| 积石山| 喀什市| 定西市| 和平县| 东光县| 广德县| 虎林市| 广水市| 靖江市| 内江市| 汾阳市| 兰西县| 枝江市| 泌阳县| 兴山县| 利辛县| 东明县| 阳新县| 邵阳县| 察雅县| 绿春县| 邯郸县| 五家渠市|