Go语言黑帽子学习2
代码清单2-3完整的端口扫描器
package main
import (
"fmt"
"net"
)
func main() {
for i := 1; i <= 1024; i++ {
address := fmt.Sprintf("172.23.190.244:%d", i)
conn, err := net.Dial("tcp", address)
if err != nil {
continue
}
conn.Close()
fmt.Printf("%d open\n", i)
}
}
代码清单2-7基本的worker池
package main
import (
"fmt"
"sync"
)
func worker(ports chan int, wg *sync.WaitGroup) {
for p := range ports {
fmt.Println(p)
wg.Done()
}
}
func main() {
ports := make(chan int, 100)
var wg sync.WaitGroup
for i := 0; i < cap(ports); i++ {
go worker(ports, &wg)
}
for i := 0; i <= 1024; i++ {
wg.Add(1)
ports <- i
}
wg.Wait()
close(ports)
}
代码清单2-8使用多通道进行端口扫描
package main
import (
"fmt"
"net"
"sort"
)
func worker(ports, result chan int) {
for p := range ports {
address := fmt.Sprintf("172.23.190.244:%d", p)
conn, err := net.Dial("tcp", address)
if err != nil {
result <- 0
continue
}
conn.Close()
result <- p
}
}
func main() {
ports := make(chan int, 100)
results := make(chan int)
var openports []int
for i := 0; i < cap(ports); i++ {
go worker(ports, results)
}
go func() {
for i := 0; i <= 1024; i++ {
ports <- i
}
}()
for i := 0; i < 1024; i++ {
port := <-results
if port != 0 {
openports = append(openports, port)
}
}
close(ports)
close(results)
sort.Ints(openports)
for _, port := range openports {
fmt.Printf("%d open\n", port)
}
}
Go语言黑帽子学习2相关推荐
- go语言黑帽子学习3
代码清单2-9 reader和writer演示 package main import ( "fmt" "log" "os" ) type ...
- Go语言黑帽子学习1
代码清单2-4 端口扫描器执行速度太快 package main import ( "fmt" "net" ) func main() { for i := 0 ...
- scapy python3_【Python3黑帽子学习笔记 on Mac】第四章 Scapy:网络的掌控者
Scapy:网络掌控者? 哇咔咔,我喜欢!可是我的问题来了,貌似Scapy只支持Python2,那哥哥这Python3咋办呢? [最新更新:目前scapy目前已经支持Python3了,就不用折腾这个了 ...
- 关于《Python黑帽子:黑客与渗透测试编程之道》的学习笔记
本篇文章是学习<Python黑帽子:黑客与渗透测试编程之道>的笔记,会持续地将书上的代码自己敲一遍,从而让自己对Python的安全编程有更多的了解,同时希望各位可以给给建议,不足之处太多了 ...
- 《Python 黑帽子》学习笔记 - 命令行选项和参数处理 - Day 4
在学习书中 netcat 代码的时候,发现其命令行选项和参数的处理存在一些小问题,由于调用 getopt 模块的 getopt() 函数时参数设置不当,会引起代码执行时获取不到参数值或引发异常.该问题 ...
- 《Python 黑帽子》学习笔记 - 准备 - Day 1
信息安全是一个有意思的方向,也是自己的爱好,从零开始,想在工作之余把这个爱好培养为自己的技术能力,而 web 安全相对来说容易入门些,于是选择 web 渗透测试作为学习的起点,并选择同样是容易入门的 ...
- 网络安全Day1_黑客、骇客、红客_黑客传奇_黑客事件_白帽子、黑帽子、灰帽子_一些术语
网络安全Day1 1.黑客.骇客.红客 黑客:hacker (摘自百度百科) 简单来说,黑客不是故意搞破坏的,他们是正面意义的群体.有技术,人又不错. 骇客:cracker,技术不一定好,但是真的坏( ...
- 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(四):web攻击
目录 前言 1.urllib2 2.开源web应用安装 3.破解目录和文件位置 4.破解HTML表格认证 结语 前言 <Python黑帽子:黑客与渗透测试编程之道>的读书笔记,会包括书中源 ...
- 网上说的白帽子黑帽子都是什么?
很多人从网上听说过白帽子跟黑帽子,但都不知道这些都是什么.这并不是真的是个帽子,这些称号统一指的是黑客.那为什么黑客又有这些白帽子黑帽子的区分呢? 下面的解答来告诉你 黑客是一个中文词语,皆源自英文h ...
最新文章
- php最简单验证码代码,简单好用的PHP验证码类
- Flex与.NET互操作(十):基于FluorineFx.Net的及时通信应用(Real-time Messaging Applications)(一)...
- [转]小心C# 5.0 中的await and async模式造成的死锁
- python外星人入侵游戏图片_跪求一个问题@关于外星人入侵游戏(《python编程基础从入门到实...
- react-native 安卓支持 gif动态图
- 【HDU - 5886】Tower Defence(树的直径,思维,dp)
- oracle =1,oracle中的 where 1=1 和where 1 !=1
- Sun Java认证
- Oracle用户密码使用特殊符号,例如(AND)、$(Dollar)、#(Pound)、*(Star)等
- Shell命令_for
- Django 框架 新建app 、新建表
- opencv 学习第三课 画线段 圆 椭圆 矩形 多边形 插入文字 代码注释版 保证你每一行都能读懂
- 南阳理工acm,水仙花数
- java实现图片与base64转换
- Python-Selennium之爬虫实战--链家二手房爬虫项目
- IDEA安装Gitee插件
- 好课堂Scratch编程09 趣学篇(五)目标!幽灵古堡
- vlookup使用步骤_VLOOKUP函数的使用方法详解
- hualinux 编程概念 3.15:天下武功,唯快不破—新时代敏捷项目管理之道
- excel2007 COUNTIFS
热门文章
- 28dm.app.php,DM盒子app-DM盒子安卓版v1.0(漫画软件)
- windows10+py36+MeCab安装总结
- adb 命令查看/控制 rk3399 GPIO 输入/输出状态
- 直播电商正在老去,电商直播永远年轻
- 0.4 - 铝合金牌号及常用铝合金牌号用途
- android手机无法进行remount
- 前端项目用hbuilder打包成APP后,调用api开启摄像头进行拍照, 5+app框架
- 疫情将加速元宇宙办公进程,削弱实体办公|元宇宙科技
- SSO(CAS) 的简单搭建与使用
- java分割符|失败问题记录