❄️ Research project for the development of SubFinder core API
v2
If you're interested in testing out the alpha version of SubFinder's next command-line application experience:
Note: this is alpha software. It's not perfect, and will be eventually merged into SubFinder's main project. This is purely for those interested in early testing to help out with development.
$ go get -u github.com/subfinder/research/subzero
You can enumerate
a domain, like google.com
, and optionally use the --verbose
flag for more information.
$ subzero enumerate google.com --verbose
Get help for any command to learn about more options.
$ subzero help enumerate
Generic (top-level) help menu.
$ subzero help
$ subzero --help
Usage:
subzero [command]
Available Commands:
enumerate Enumerate subdomains for the given domains.
help Help about any command
Flags:
-h, --help help for subzero
Use "subzero [command] --help" for more information about a command.
$ subzero enumerate --help
Enumerate subdomains for the given domains
Usage:
subzero enumerate [domains to enumerate] [flags]
Flags:
-h, --help help for enumerate
--insecure include potentially insecure sources using http
--labels show source of the domain in output
--limit int limit the reported results to the given number
--no-timeout do not timeout
--recursive use results to find more results
--timeout int number of seconds until timeout (default 30)
--uniq filter uniq results
--verbose show errors and other available diagnostic information
$ cd /path/to/research
$ GOCACHE=off go test -v -run=. ./... -race
# just core
$ GOCACHE=off go test -v -run=. ./core -race
That's a great question, and I hope these reasons will make sense:
- Reduce boilerplate code needed to add or develop new sudomain
Sources
- Utilize the
interface
type in golang to define our internal API semantics. - Provide tests and examples of all its functionality.
- Ensure a solid foundation for future tools to be built upon (CLI, HTTP/REST API)
Make an issue or pull request to this repository to improve it!
- Try running the tests.
- Fix the tests.
- Write some tests.
- Ask questions about parts that confuse you.
- Add documentation.
- Provide solutions for better word choices in documentation.
- Spellchecking is awesome.
- Be creative!