Skip to content
/ goscan Public

golang的扫描框架, 支持协程池和自动调节协程个数.

License

Notifications You must be signed in to change notification settings

jmpews/goscan

Repository files navigation

Golang Scan Framework

golang的扫描框架, 支持协程池和自动调节协程个数. 在30min内扫描391W的ULR(根据带宽和配置改变, 和Zmap不同, Zmap是无连接状态扫描)

golang scanner framework, with goroutines pool and automatically adjusting the scanning speed.

Scan 391W wordpress sites in 30min.

Features

  • goroutines pool
  • workers feedback mechanism
  • monitor status

Usage

Before run

// if you set a fixed number of goroutine, set feedback-mechanism `false` and maxWorkers == jobCacheQueueLen`
// Example: pool = NewGoroutinePool(100, 100, false)

// if you use feedback-mechanism, set `feedback = true`, maxWorkers and jobCacheQueueLen
// Example: pool := NewGoroutinePool(100, 1000, true)

// 1000 maxWorkers and 20000 jobCacheQueueLen, with feedback mechanism
pool := NewGoroutinePool(1000, 20000, true)

Cross compilation (Best Choice)

GOOS=linux GOARCH=amd64 go build -v scanner.go pool.go

Just Run

./scanner

Run with new Golang Env

sudo locale-gen zh_CN.UTF-8
sudo locale-gen zh_CN.UTF-8 en_US.UTF-8

wget https://storage.googleapis.com/golang/go1.7.3.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.7.3.linux-amd64.tar.gz

echo 'PATH=$PATH:/usr/local/go/bin' >> ~/.profile
echo 'GOPATH=/tmp' >> ~/.profile
. ~/.profile

go get github.com/pborman/uuid

go run scanner.go pool.go

Run with docker

$ git clone https://github.com/jmpews/goscan.git
$ cd goscan/
$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.7 go get github.com/pborman/uuid && go build -v scanner.go pool.go

About

golang的扫描框架, 支持协程池和自动调节协程个数.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published