a tool in Golang for scanning the world wide internet
Go to file
2026-06-30 16:06:40 +03:00
.gitignore update readme 2026-06-30 16:06:40 +03:00
frontend.go init 2026-06-30 15:49:12 +03:00
go.mod init 2026-06-30 15:49:12 +03:00
go.sum init 2026-06-30 15:49:12 +03:00
LICENSE Initial commit 2026-06-30 12:25:51 +00:00
main.go init 2026-06-30 15:49:12 +03:00
README.md update readme 2026-06-30 16:06:40 +03:00
release.sh init 2026-06-30 15:49:12 +03:00

geoscan

a tool in Golang for scanning the world wide internet

how to set up

disclaimer: this guide assumes you have a Linux/Unix capable host with the bash shell installed

installing prequisities:

  • zmap
  • mySQL/mariaDB (optional, canner can use sqlite)
sudo apt update
sudo apt install zmap

then compile the backend scanner

go mod tidy
chmod +x release.sh
./release.sh

this will compile the main.go scanner

then make the configuration file in JSON

example config for mySQL

{
  "zmapfile": "zmaplist.txt",
  "channelfeeders": 20,
  "db": {
    "dbdriver": "mysql",
    "username": "root",
    "password": "admin",
    "dbname": "scannerdb"
  },
  "web": {
    "port": 9000,
    "username": "admin",
    "password": "admin"
  }
}

note to change the username and password to the mySQL/MariaDB database you have installed, to create the database for the scanner, run the following query

CREATE DATABASE scannerdb;
CREATE USER 'Scanner'@'localhost' IDENTIFIED BY 'Scannerpass123';
GRANT ALL PRIVILEGES ON scannerdb.* TO 'Scanner'@'localhost';
FLUSH PRIVILEGES;

config file for SQLite

{
  "zmapfile": "zmaplist.txt",
  "channelfeeders": 20,
  "db": {
    "dbdriver": "sqlite",
    "username": "",
    "password": "",
    "dbname": "scanner.db"
  },
  "web": {
    "port": 9000,
    "username": "admin",
    "password": "admin"
  }
}

then to start scanning, run zmap that was installed earlier

sudo zmap -p 80 -o zmaplist.txt

leave zmap running for some time, to evenutally build a list of active IPs then run the scanner with the IP file you got from zmap

./main

make sure the database config is correct, otherwise an error will be seen of being unable to connect to the database if using mySQL

then after we are done scanning, we wanna see our data

making and using the frontend

  • first, compile the frontend
    go build -ldflags "-s -w" -trimpath frontend.go
    
    a frontend binary will appear, run with ./frontend