日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > Golang > 正文

go語言制作端口掃描器

2020-04-01 19:15:10
字體:
來源:轉載
供稿:網友

本文給大家分享的是使用go語言編寫的TCP端口掃描器,可以選擇IP范圍,掃描的端口,以及多線程,有需要的小伙伴可以參考下。

GO語言編寫的TCP端口掃描器,本人的第一個GO程序。

Git@OSC:http://git.oschina.net/youshusoft/GoScanner

使用命令:

Scanner startIp [endIp] port thread

參數說明:

startIp 開始IP

endIp 結束IP,可選,不輸入表示只掃描startIp

port 掃描端口,單個端口:3389;多個端口:1433,3389;連續端口:135-3389

thread 最大并發線程數,最高2048

掃描結果保存在同目錄下的 result.txt 中,每次啟動都會清掉之前的內容。

例子一:

Scanner 58.96.172.22 58.96.172.220 80 512

掃描58.96.172.22到58.96.172.220中的80端口,最大并發線程512。

例子二:

Scanner 58.96.172.22 58.96.172.220 21,5631 512

掃描58.96.172.22到58.96.172.220中的21和5631端口,最大并發線程512。

例子三:

Scanner 58.96.172.22 58.96.172.220 1-520 512

掃描58.96.172.22到58.96.172.220中的1到520端口,最大并發線程512。

例子四:

Scanner 58.96.172.22 1-520 512

掃描58.96.172.22中的1到520端口,最大并發線程512。

 

 
  1. package main 
  2. import ( 
  3. "fmt" 
  4. "strconv" 
  5. "flag" 
  6. "strings" 
  7. "net" 
  8. "os" 
  9. /** 
  10. 掃描地址 
  11. */ 
  12. var ipAddrs chan string = make(chan string) 
  13. //掃描結果 
  14. var result chan string = make(chan string) 
  15. //線程數 
  16. var thread chan int = make(chan int
  17. var nowThread int
  18. //關閉程序 
  19. var clo chan bool = make(chan bool) 
  20. //保存結果 
  21. func writeResult(){ 
  22. fileName := "result.txt" 
  23. fout,err := os.Create(fileName) 
  24. if err != nil{ 
  25. //文件創建失敗 
  26. fmt.Println(fileName + " create error"
  27. defer fout.Close() 
  28. s,ok := <- result 
  29. for ;ok;{ 
  30. fout.WriteString(s + "/r/n"
  31. s,ok = <- result 
  32. //通知進程退出 
  33. clo <- true;  
  34. //根據線程參數啟動掃描線程 
  35. func runScan(){ 
  36. t,ok := <- thread 
  37. nowThread = t; 
  38. if ok{ 
  39. for i := 0;i < nowThread;i++{ 
  40. go scan(strconv.Itoa(i)) 
  41. //等待線程終止 
  42. for;<-thread == 0;{ 
  43. nowThread-- 
  44. if nowThread == 0{ 
  45. //全部線程已終止,關閉結果寫入,退出程序 
  46. close(result) 
  47. break 
  48. /** 
  49. 掃描線程 
  50. */ 
  51. func scan(threadId string){ 
  52. s,ok := <-ipAddrs 
  53. for;ok;{ 
  54. fmt.Println("[thread-" + threadId + "] scan:" + s) 
  55. _,err := net.Dial("tcp",s) 
  56. if err == nil{ 
  57. //端口開放 
  58. result <- s  
  59. s,ok = <-ipAddrs 
  60. fmt.Println("[thread-" + threadId + "] end"
  61. thread <- 0; 
  62. //獲取下一個IP 
  63. func nextIp(ip string) string{ 
  64. ips := strings.Split(ip,"."
  65. var i int
  66. for i = len(ips) - 1;i >= 0;i--{ 
  67. n,_ := strconv.Atoi(ips[i]) 
  68. if n >= 255{ 
  69. //進位 
  70. ips[i] = "1" 
  71. }else
  72. //+1 
  73. n++ 
  74. ips[i] = strconv.Itoa(n) 
  75. break 
  76. if i == -1{ 
  77. //全部IP段都進行了進位,說明此IP本身已超出范圍 
  78. return ""
  79. ip = "" 
  80. leng := len(ips) 
  81. for i := 0;i < leng;i++{ 
  82. if i == leng -1{ 
  83. ip += ips[i] 
  84. }else
  85. ip += ips[i] + "." 
  86. return ip 
  87. //生成IP地址列表 
  88. func processIp(startIp,endIp string) []string{ 
  89. var ips = make([]string,0) 
  90. for ;startIp != endIp;startIp = nextIp(startIp){ 
  91. if startIp != ""
  92. ips = append(ips,startIp) 
  93. ips = append(ips,startIp) 
  94. return ips 
  95. //處理參數 
  96. func processFlag(arg []string){ 
  97. //開始IP,結束IP 
  98. var startIp,endIp string 
  99. //端口 
  100. var ports []int = make([]int,0) 
  101. index := 0 
  102. startIp = arg[index] 
  103. si := net.ParseIP(startIp) 
  104. if si == nil{ 
  105. //開始IP不合法 
  106. fmt.Println("'startIp' Setting error"
  107. return 
  108. index++ 
  109. endIp = arg[index] 
  110. ei := net.ParseIP(endIp) 
  111. if(ei == nil){ 
  112. //未指定結束IP,即只掃描一個IP 
  113. endIp = startIp 
  114. }else
  115. index++ 
  116. tmpPort := arg[index] 
  117. if strings.Index(tmpPort,"-") != -1{ 
  118. //連續端口 
  119. tmpPorts := strings.Split(tmpPort,"-"
  120. var startPort,endPort int 
  121. var err error 
  122. startPort,err = strconv.Atoi(tmpPorts[0]) 
  123. if err != nil || startPort < 1 || startPort > 65535{ 
  124. //開始端口不合法 
  125. return 
  126. if len(tmpPorts) >= 2{ 
  127. //指定結束端口 
  128. endPort,err = strconv.Atoi(tmpPorts[1]) 
  129. if err != nil || endPort < 1 || endPort > 65535 || endPort < startPort{ 
  130. //結束端口不合法 
  131. fmt.Println("'endPort' Setting error"
  132. return 
  133. }else
  134. //未指定結束端口 
  135. endPort = 65535 
  136. for i := 0;startPort + i <= endPort;i++{ 
  137. ports = append(ports,startPort + i) 
  138. }else
  139. //一個或多個端口 
  140. ps := strings.Split(tmpPort,","
  141. for i := 0;i < len(ps);i++{ 
  142. p,err := strconv.Atoi(ps[i]) 
  143. if err != nil{ 
  144. //端口不合法 
  145. fmt.Println("'port' Setting error"
  146. return 
  147. ports = append(ports,p) 
  148. index++ 
  149. t,err := strconv.Atoi(arg[index]) 
  150. if(err != nil){ 
  151. //線程不合法 
  152. fmt.Println("'thread' Setting error"
  153. return 
  154. //最大線程2048 
  155. if t < 1{ 
  156. t = 1; 
  157. }else if t > 2048{ 
  158. t = 2048; 
  159. //傳送啟動線程數 
  160. thread <- t 
  161. //生成掃描地址列表 
  162. ips := processIp(startIp,endIp) 
  163. il := len(ips) 
  164. for i := 0; i < il;i++{ 
  165. pl := len(ports) 
  166. for j := 0;j < pl;j++{ 
  167. ipAddrs <- ips[i] + ":" + strconv.Itoa(ports[j])  
  168. close(ipAddrs) 
  169. func main(){ 
  170. flag.Parse() 
  171. if flag.NArg() != 3 && flag.NArg() != 4{ 
  172. //參數不合法 
  173. fmt.Println("Parameter error"
  174. return 
  175. //獲取參數 
  176. args := make([]string,0,4) 
  177. for i := 0;i < flag.NArg();i++{ 
  178. args = append(args,flag.Arg(i)) 
  179. //啟動掃描線程 
  180. go runScan() 
  181. //啟動結果寫入線程 
  182. go writeResult() 
  183. //參數處理 
  184. processFlag(args) 
  185. //等待退出指令 
  186. <- clo; 
  187. fmt.Println("Exit"

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
免费高清在线一区| 日韩视频在线观看视频| 日韩精品视频网站| 精品国产欧美日韩| 亚洲视频资源在线| 国产欧美日韩视频| 亚洲国产91精品在线观看| 中文字幕国产亚洲| 欧美99久久| 91精品国产91久久| 中文字幕日韩精品在线| 国产一级在线免费观看| 日韩精品福利视频| 精品福利二区三区| 香蕉av一区| 91精品国产综合久久香蕉最新版| 粉嫩喷白浆久久| 欧美中日韩在线| 视频一区二区中文字幕| 国产区日韩欧美| 欧美一级在线免费| 日韩中文字幕在线播放| 伊人亚洲视频| 日本亚洲欧美| 国产欧美日韩中文字幕| 日韩欧美999| 一区二区三区免费看视频 | 日韩欧美不卡| 亚洲精品中文字幕乱码三区不卡| 国产亚洲欧美中文| 一区二区三区精品久久久| 激情久久99| 精品日韩一区二区三区免费视频| 视频一区二区不卡| 亚洲女人天堂色在线7777| 国产福利一区二区精品秒拍| 欧美日韩色综合| 精品调教chinesegay| 亚洲精品欧美二区三区中文字幕| 久久久另类综合| 欧美三级网址| 91精品国产91久久| 中文字幕亚洲高清| 亚洲综合在线电影| 日韩精品福利视频| 免费看日韩精品| 日韩欧美亚洲日产国| 91精品免费观看| 日本熟女一区二区| 欧美成人精品在线| 久久福利视频一区二区| 中文国产字幕在线观看| 亚洲综合中文字幕在线| 国产男女av| 天天摸日日摸狠狠添| 午夜一区二区三区视频| 国产日韩综合| 日韩欧美看国产| 精品播放一区二区| 欧美日韩一二| 天堂精品高清1区2区3区| 不卡一区二区三区视频| 不卡视频一区二区三区| 欧美在线视频一区二区| 欧美高清视频一区二区三区| 一区二区不卡在线播放| 色www精品视频在线观看| 不卡在线一区二区| 日韩国产91| 91精品国产综合久久精品| 国产裸体歌舞团一区二区 | 一区二区视频国产| 欧美日韩久久久| 日韩精品久久久| 在线免费播放av| 在线国产三级| 国产午夜精品视频免费不卡69堂 | 欧美国产91| 在线观看国产福利视频| 97最新国自产拍视频在线完整在线看| 欧美wwww| 欧美日韩第一| 精品久久香蕉国产线看观看gif| 中文字幕日韩免费视频| 欧洲精品在线视频| 欧美99久久| 日本视频久久久| 91日韩欧美| 欧美日韩国产一区| 亚洲一级特黄| 色国产在线视频| 日韩av一区二区在线| 国产在线拍揄自揄拍| 欧美 亚洲 精品 三区| 欧美日韩在线看| 日韩综合精品| 中文网丁香综合网| 精品国产不卡一区二区| 亚洲 欧美 中文字幕| 一区二区三区在线免费| 国产黄色在线免费观看| 欧美日韩国产在线看| 欧美wwww| 日韩在线视频二区| 欧美日韩国产在线看| 欧美综合精品| 91精品xxx在线观看| 二区中文字幕| 一级片免费在线播放| 久久综合九色欧美综合狠狠| 免费高清特黄a大片| 亚洲大片免费看| 精品日韩av| 亚洲理论中文字幕| 欧美区高清在线| 国产高清不卡av| 一区二区三区精品在线| 精品无人国产偷自产在线| 婷婷精品视频| 亚洲国产一区自拍| 免费看日韩精品| 在线日韩中文字幕| 国产欧美日韩在线看| 日韩影院二区| 最新中文字幕在线| 欧美三级精品| 日韩三级精品电影久久久| 欧美片网站免费| 久久精品在线观看| 一区二区在线高清视频| 国产 欧美 在线| 中文字幕无线码一区| 国产视频aaa| 免费精品国产自产拍在| 日韩高清不卡| 中文字幕国产亚洲| 色综合天天综合网国产成人综合天| 亚洲最新永久观看在线| 欧美wwww| 精品国产乱码久久久久久蜜臀| 国产又粗又猛又爽又黄91精品| 中文字幕在线精品| 中文字幕综合在线| 久久99久久久久久久噜噜| 黄色精品在线观看| 亚洲精品中文字幕乱码三区| www.精品av.com| 中文在线视频| 欧美三级日韩在线| 久久久久蜜桃| 欧美中文字幕第一页| 欧美日韩亚州综合| √天堂资源中文www| 欧美久久一二三四区| 精品日韩视频| 国产手机精品视频| 久久精品欧美日韩精品| 中文字幕线观看| 中文字幕在线精品| 精品视频三区| 中文 欧美 日韩| 91精品国产91综合久久蜜臀| 中文字幕在线欧美| 欧美国产日韩在线播放| 国产欧美日韩精品在线| 日韩中文字幕| www.久久久精品| 亚洲乱码中文字幕| 国产久卡久卡久卡久卡视频精品| 国产蜜臀在线| 午夜精品免费视频| 亚洲综合在线视频| 日韩欧美亚洲国产一区| 99综合精品久久| 在线三级av| 不卡在线视频| 国产中文在线| 国产极品嫩模在线视频一区 | 一本一道综合狠狠老| 亚洲羞羞网站| 69av亚洲| 日韩精品视频免费| 日韩欧美一二三| 日韩高清不卡在线| 日韩视频一区二区在线观看| 精品国内自产拍在线视频| av一区在线| 久久99久久久欧美国产| 日韩av一区在线| 亚洲高清不卡一区| 国自产拍在线网站网址视频| 欧美一级久久久久久久久大| 99亚洲视频| 欧美日韩国产首页| 亚洲国产福利视频| 日韩欧美一级二级三级久久久| 精品在线一区二区三区| 91精品国产91久久久久| 男人的天堂网av| 亚洲一级二级| 欧美日韩三级视频| 国产最新在线| 日韩欧美中文字幕公布| 日韩中文在线视频| 在线观看免费国产小视频| 亚洲丝袜一区| 久久视频在线免费观看| 中文字幕成人乱码在线电影| 日韩欧美国产高清| 国产一级视频| 91精品国产综合久久蜜臀 | 日韩欧美亚洲视频| 91精品国产自产在线丝袜啪| 日韩亚洲欧美中文三级| 久久蜜桃精品| a级在线免费观看| 红桃视频亚洲| 国产性一级片| 91精品国产自产91精品| 日韩中文字幕| 在线欧美一级视频| 欧美 中文字幕| 日韩在线视频中文字幕| 中文字幕亚洲国产| 综合激情一区| 精品国产99久久久久久| 国产福利第一页| 国产中文在线视频| 精品全国在线一区二区| 国产日韩免费| 日韩精品视频中文字幕| 不卡视频一区二区| 国产在线高清精品| 国产综合精品在线| 中文国产字幕在线观看| 国产成人综合精品| 久久欧美中文字幕| 亚洲经典中文字幕| 国产丝袜一区| 在线国产一级| 91色在线看| 亚洲素人一区二区| 亚洲成av人片在线| 日韩欧美99| www.三级.com| 国产又粗又猛又爽又黄91精品| 国产亚洲人成a一在线v站| 国产在线高清精品| 精品视频资源站| 中文字幕4区| 亚洲校园欧美国产另类| 中文字幕在线观看视频www| 日韩一级二级三级| 刘玥91精选国产在线观看| 日韩久久不卡| 国产日韩中文字幕在线| 免费精品国产自产拍在| 91亚洲国产高清| 亚洲欧洲日产国码av系列天堂| 欧美日韩国产亚洲一区| 一区二区不卡久久精品| 91精品国产综合久久精品 | 欧美日韩午夜在线| 免费在线观看国产黄| 在线中文字幕视频| 一区二区日韩免费看| 久久激情一区| 亚洲a级在线播放观看| 中文字幕在线导航| 精品一性一色一乱农村| 亚洲国产专区| 久久激情中文| 天天综合天天添夜夜添狠狠添| 最新中文字幕在线播放| 中文字幕亚洲国产| 日韩国产欧美| 欧美一级手机免费观看片| 午夜精品一区二区三区免费视频| 日韩中文字幕网| 中文字幕日韩亚洲| 久久99蜜桃精品久久久久小说| 区日韩二区欧美三区| 丰满少妇一区二区| 1区2区3区在线视频| 日韩中文首页| 久久久91精品| 日韩精品在线免费播放| 欧美中日韩在线| 国产欧美日韩亚州综合| 精品极品三级久久久久| a天堂在线资源| 亚洲免费精品| 精品国产91乱高清在线观看| 欧美日韩精品免费看| 国产欧美日产一区| 久久久99精品久久| 亚洲成年人在线播放| 国产综合成人久久大片91| 在线精品日韩| 国产 日韩 欧美 综合| 丰满少妇一区| 久久香蕉一区| 国产在线中文字幕| 亚洲视频电影在线| 国产免费久久| 中文字幕精品在线播放| 久久韩国免费视频| wwwwww国产| 国产区视频在线观看| www日韩欧美| 国产手机精品视频| 中文官网资源新版中文第二页在线观看 | 亚洲素人一区二区| www.久久草| 日韩在线视频一区| 日韩在线 中文字幕| 欧美二三四区| 91精品视频在线| 三级网站免费观看| 亚洲福利在线观看| 一级特黄aaa大片在线观看| 中文字幕国产视频| 国产成人精品免费在线| 欧美日韩国产综合视频在线观看中文| 免费国产成人看片在线| 中文字幕国产视频| 欧美日韩国产一级片| 国产小视频在线观看| 日韩欧美高清在线| 精品日韩欧美在线| 欧美日韩综合在线观看| 一区三区视频| 午夜少妇久久久久久久久| 中文字幕欧美亚洲| 日韩国产成人| 久久久久久91| www日韩在线观看| 亚洲大胆人体av| 日韩字幕在线观看| 国产不卡一区二区在线观看| 久久精品电影| 久久精品视频免费看| 欧美高清一级片在线| 精品视频国产| 日韩在线视频精品| 日韩欧美综合视频| 欧美亚洲视频在线看网址| 国产成人精品网址| 精品视频1区2区3区| 久久手机免费观看| 成人精品视频一区| 日韩高清不卡一区二区| 国产不卡的av| 国产日韩电影| 日韩中文字幕在线视频播放| 欧美一级久久| 精品亚洲成a人片在线观看| 欧美日韩在线不卡一区| 91精品视频播放| 91精品国产综合久久香蕉最新版 | 在线视频观看日韩| 不卡在线视频| 91最新在线| 中文字幕成人乱码在线电影| 国产在线第一页| 天堂在线视频中文网| 国产三级视频在线| 日韩在线高清| 日韩精品乱码av一区二区| aaa大片在线观看| 尤物在线精品| 中文字幕最新精品| 91精品xxx在线观看| 色综合久久六月婷婷中文字幕| 国产日韩精品在线看| 日韩欧美三级视频| 日韩av不卡在线观看| 91精品久久久久久久久久入口| 99精品在线播放| 国产高清精品二区| 91精品国产亚洲| 欧美xxxx中国| 欧美日韩在线视频一区| 亚洲成av人片在线| 国产1区在线| 在线观看91精品国产入口| 久草中文在线观看| 在线观看一区日韩| 国产三级视频网站| 日韩三级视频在线看| 不卡视频一区二区三区| 在线一区二区不卡| 一区二区三区在线播| 黄色国产在线| 欧美日韩国产在线观看| 91亚洲欧美| 久久99久久久久久久噜噜| 7799精品视频天天看| 中文字幕日韩欧美| 亚洲一区中文|