feat: add DNS query/response layer with miekg/dns #3
@@ -0,0 +1,27 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main, master]
|
||||
pull_request:
|
||||
branches: [main, master]
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: '1.24'
|
||||
cache: true
|
||||
|
||||
- name: Vet
|
||||
run: go vet ./...
|
||||
|
||||
- name: Test
|
||||
run: go test -v -race -coverprofile=coverage.out ./...
|
||||
|
||||
- name: Build
|
||||
run: go build -v ./...
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
package config
|
||||
@@ -0,0 +1 @@
|
||||
package dns
|
||||
@@ -0,0 +1 @@
|
||||
package fingerprint
|
||||
@@ -0,0 +1 @@
|
||||
package output
|
||||
@@ -0,0 +1 @@
|
||||
package traverse
|
||||
Reference in New Issue
Block a user