Merge pull request 'feat: Go project scaffolding - module init, directory structure, CLI skeleton, Makefile, CI' (#1) from agent/go-expert-developer/32986165 into main
CI / build (push) Has been cancelled

Reviewed-on: http://gitea.hansenits.com.au/hits/ExploreDNS/pulls/1
This commit was merged in pull request #1.
This commit is contained in:
2026-06-05 05:22:24 +00:00
11 changed files with 143 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
name: CI
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.21'
cache: true
- name: Vet
run: go vet ./...
- name: Test
run: go test -v -race ./...
- name: Build
run: go build -v ./...
+19
View File
@@ -0,0 +1,19 @@
BINARY_NAME=exploredns
BUILD_DIR=bin
GO=go
GOFLAGS=-v
.PHONY: build test lint clean
build:
$(GO) build $(GOFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME) ./cmd/exploredns
test:
$(GO) test -v -race -coverprofile=coverage.out ./...
lint:
$(GO) vet ./...
clean:
rm -rf $(BUILD_DIR)
rm -f coverage.out
+42
View File
@@ -1,2 +1,44 @@
# ExploreDNS
DNS reconnaissance and exploration tool.
## Build
```sh
go build -o bin/exploredns ./cmd/exploredns
```
Or use the Makefile:
```sh
make build
```
## Usage
```sh
./bin/exploredns <domain>
```
## Development
```sh
make test # run tests
make lint # run go vet
make clean # remove build artifacts
```
## Project Structure
```
cmd/exploredns/ CLI entry point
internal/dns/ DNS query operations
internal/traverse/ DNS tree traversal
internal/fingerprint/ DNS server fingerprinting
internal/output/ Result formatting and output
internal/config/ Configuration management
```
## License
MIT
+26
View File
@@ -0,0 +1,26 @@
package main
import (
"flag"
"fmt"
"os"
)
func main() {
flag.Usage = func() {
fmt.Fprintf(os.Stderr, "ExploreDNS - DNS reconnaissance and exploration tool\n\n")
fmt.Fprintf(os.Stderr, "Usage:\n")
fmt.Fprintf(os.Stderr, " exploredns [flags] <domain>\n\n")
fmt.Fprintf(os.Stderr, "Flags:\n")
flag.PrintDefaults()
}
flag.Parse()
if flag.NArg() == 0 {
flag.Usage()
os.Exit(1)
}
fmt.Printf("ExploreDNS - exploring: %s\n", flag.Arg(0))
}
+12
View File
@@ -0,0 +1,12 @@
module github.com/hits/ExploreDNS
go 1.25.6
require (
github.com/miekg/dns v1.1.72 // indirect
golang.org/x/mod v0.31.0 // indirect
golang.org/x/net v0.48.0 // indirect
golang.org/x/sync v0.19.0 // indirect
golang.org/x/sys v0.39.0 // indirect
golang.org/x/tools v0.40.0 // indirect
)
+12
View File
@@ -0,0 +1,12 @@
github.com/miekg/dns v1.1.72 h1:vhmr+TF2A3tuoGNkLDFK9zi36F2LS+hKTRW0Uf8kbzI=
github.com/miekg/dns v1.1.72/go.mod h1:+EuEPhdHOsfk6Wk5TT2CzssZdqkmFhf8r+aVyDEToIs=
golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI=
golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg=
golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU=
golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY=
golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk=
golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA=
golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc=
+1
View File
@@ -0,0 +1 @@
package config
+1
View File
@@ -0,0 +1 @@
package dns
+1
View File
@@ -0,0 +1 @@
package fingerprint
+1
View File
@@ -0,0 +1 @@
package output
+1
View File
@@ -0,0 +1 @@
package traverse