Type-safe dork queries for search engines such as Google, Yahoo, DuckDuckGo & Bing
Go to file
sundowndev f5d869eb13 test: google search 2020-06-15 10:50:03 +02:00
.github/workflows ci: setup coverage (#1) 2020-02-26 12:21:22 +01:00
docs docs: add jetbrains support notice 2020-06-05 14:36:11 +02:00
.codeclimate.yml chore: codeclimate config 2020-02-24 21:22:55 +01:00
.gitignore chore: gitignore 2020-04-25 14:20:03 +01:00
LICENSE chore: create license 2020-02-24 20:34:46 +01:00
README.md docs: readme 2020-06-15 09:52:28 +02:00
doc.go feat: implement intitle method 2020-02-27 19:47:17 +01:00
dorkgen.go refactor: engine factory struct 2020-04-25 14:31:29 +01:00
go.mod Update module stretchr/testify to v1.6.1 2020-06-05 12:26:56 +00:00
go.sum Update module stretchr/testify to v1.6.1 2020-06-05 12:26:56 +00:00
google.go feat!:rename tostring to string 2020-06-15 10:48:53 +02:00
google_test.go test: google search 2020-06-15 10:50:03 +02:00
renovate.json chore(deps): add renovate.json 2020-03-18 20:49:37 +00:00

README.md

Dorkgen

Dorkgen is a dork request generator for popular search engines such as Google, DuckDuckGo and Bing. Learn more about Google Hacking.

For now, only Google is supported.

Install

go get github.com/sundowndev/dorkgen

Usage

Try it in the Go playground

Get started

package main

import "github.com/sundowndev/dorkgen"

func main() {
  dork := &dorkgen.GoogleSearch{}
  // dork := &dorkgen.DuckDuckGo{}
  // dork := &dorkgen.Bing{}

  dork.Site("example.com").Intext("text").ToString()
  // returns: site:example.com intext:"text"
}

Operators

func main() {
  dork.Site("facebook.com").Or().Site("twitter.com").ToString()
  // returns: site:facebook.com OR site:twitter.com

  dork.Intext("facebook").And().Intext("twitter").ToString()
  // returns: intext:"facebook" AND intext:"twitter"
}

Exclude results

func main() {
  dork.
    Exclude((&dorkgen.GoogleSearch{}).
      Site("example.com").
      ToString()).
    Site("example.*").
    Or().
    Intext("text")
  // returns: -site:example.com site:example.* OR "text"
}

Group tags along with operators

func main() {
  dork.
    Group((&dorkgen.GoogleSearch{}).
      Site("facebook.com").
      Or().
      Site("twitter.com").
      ToString()).
    Intext("wtf").
    ToString()
  // returns: (site:facebook.com OR site:twitter.com) "wtf"
}

URL conversion

func main() {
  dork.
    Site("facebook.*").
    Exclude((&dorkgen.GoogleSearch{}).
      Site("facebook.com").
      ToString())

  dork.ToString()
  // returns: site:facebook.* -site:facebook.com
  dork.ToURL()
  // returns: https://www.google.com/search?q=site%3Afacebook.%2A+-site%3Afacebook.com
}

Support

Thanks to JetBrains for supporting my open-source projects.