All Projects → picatz → hunter

picatz / hunter

Licence: MIT license
🐺 Command-line application and golang client library for hunter.io

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to hunter

mini-project
An android eCommerce application for students through which they can buy and sell used goods .
Stars: ✭ 26 (-7.14%)
Mutual labels:  email-verification
Recon-X
Advanced Reconnaissance tool to enumerate attacking surface of the target.
Stars: ✭ 27 (-3.57%)
Mutual labels:  reconnaissance
laravel-email-verification-app-boilerplate
Laravel app boilerplate with email verification process on registration
Stars: ✭ 41 (+46.43%)
Mutual labels:  email-verification
Moonmail
Email marketing platform for bulk emailing via Amazon SES (Google Cloud Platform and Azure coming soon)
Stars: ✭ 1,766 (+6207.14%)
Mutual labels:  email-verification
Git-Secret
Go scripts for finding sensitive data like API key / some keywords in the github repository
Stars: ✭ 156 (+457.14%)
Mutual labels:  reconnaissance
PyIris
PyIris is a modular remote access trojan toolkit written in python targeting Windows and Linux systems.
Stars: ✭ 296 (+957.14%)
Mutual labels:  reconnaissance
parse-server-simple-mailgun-adapter
Used to send Parse Server password reset and email verification emails though Mailgun
Stars: ✭ 81 (+189.29%)
Mutual labels:  email-verification
CEH
Exam Prep for the Ec-council Certified Ethical Hacker 312-50
Stars: ✭ 71 (+153.57%)
Mutual labels:  reconnaissance
Investigo
🔎 Find usernames and download their data across social media.
Stars: ✭ 168 (+500%)
Mutual labels:  reconnaissance
SourceWolf
Amazingly fast response crawler to find juicy stuff in the source code! 😎🔥
Stars: ✭ 132 (+371.43%)
Mutual labels:  reconnaissance
Awesome-CyberSec-Resources
An awesome collection of curated Cyber Security resources(Books, Tutorials, Blogs, Podcasts, ...)
Stars: ✭ 273 (+875%)
Mutual labels:  reconnaissance
reacher-js
TypeScript wrapper library over Reacher API
Stars: ✭ 24 (-14.29%)
Mutual labels:  email-verification
prickly-pete
A script using Docker to quickly bring up some honeypots exposing lots of services. For research, reconnaissance, and fun. (DISCLAIMER may not be fun, not to be taken internally, aim away from face)
Stars: ✭ 29 (+3.57%)
Mutual labels:  reconnaissance
NeverBounceAPI-PHP
This package provides convenient methods to integrate the NeverBounce API into your project.
Stars: ✭ 22 (-21.43%)
Mutual labels:  email-verification
flydns
Related subdomains finder
Stars: ✭ 29 (+3.57%)
Mutual labels:  reconnaissance
django-rest-email-auth
Django app to handle authentication and registration by email.
Stars: ✭ 13 (-53.57%)
Mutual labels:  email-verification
Sudomy
Sudomy is a subdomain enumeration tool to collect subdomains and analyzing domains performing automated reconnaissance (recon) for bug hunting / pentesting
Stars: ✭ 1,572 (+5514.29%)
Mutual labels:  reconnaissance
urlRecon
📝 urlRecon - Info Gathering or Recon tool for Urls -> Retrieves * Whois information of the domain * DNS Details of the domain * Server Fingerprint * IP geolocation of the server
Stars: ✭ 31 (+10.71%)
Mutual labels:  reconnaissance
subdomainsEnumerator
A docker image which will enumerate, sort, unique and resolve the results of various subdomains enumeration tools.
Stars: ✭ 63 (+125%)
Mutual labels:  reconnaissance
tugarecon
Pentest: Subdomains enumeration tool for penetration testers.
Stars: ✭ 142 (+407.14%)
Mutual labels:  reconnaissance

hunter

Command-line application and golang client library for hunter.io.

Download

$ go get github.com/picatz/hunter/...

Update

$ go get -u github.com/picatz/hunter/...

CLI Usage

The command-line application has three major commands search, find, and verify. All three of these commands output JSON. This makes parsing the infromation easy, especially using command-line tools like jq.

$ hunter
Usage:
  hunter [command]

Available Commands:
  account     Get information regarding your hunter.io account
  find        Generates or retrieves the most likely email address from a domain name, a first name and a last name
  help        Help about any command
  search      Search all the email addresses corresponding to one website or company
  verify      Allows you to verify the deliverability of an email address

Flags:
  -h, --help   help for hunter

Use "hunter [command] --help" for more information about a command.
$ hunter verify --email [email protected] | jq -r .data.score
30
$ hunter find --company google --full-name "Kelsey Hightower" | jq -r .data.email
[email protected]
$ hunter search --domain github.com --department it | jq -r '.data.emails[] | "\(.value) \(.position)"'
[email protected] Developer
[email protected] Developer
[email protected] Developer Product Manager
[email protected] Developer
[email protected] Principal Engineer Systems Engineering Manager
[email protected] Software Developer
[email protected] Developer
[email protected] Developer
[email protected] Developer
[email protected] Developer
$ hunter search --domain github.com --department it --offset 10 | jq -r '.data.emails[] | "\(.value) \(.position)"'
[email protected] Developer
[email protected] Developer
[email protected] Developer
[email protected] Developer
[email protected] 
[email protected] Developer
[email protected] Developer
[email protected] Developer
[email protected] Developer
[email protected] 

search

$ hunter search --help
...
$ hunter search --domain stripe.com
...
$ hunter search --company stripe
...

Output using search

{
  "data": {
    "domain": "stripe.com",
    "disposable": false,
    "webmail": false,
    "pattern": "{first}",
    "organization": "Stripe",
    "emails": [
      ...
    ]
  },
  "meta": {
    ...
  }
}

find

$ hunter find --help
...
$ hunter find --domain asana.com --full-name "Dustin Moskovitz"
...
$ hunter find --company Asana --full-name "Dustin Moskovitz"
...
$ hunter find --company Asana --first-name Dustin --last-name Moskovitz
...

Output using find

{
  "data": {
    "first_name": "Dustin",
    "last_name": "Moskovitz",
    "email": "[email protected]",
    "score": 96,
    "domain": "asana.com",
    "position": "Cofounder",
    "twitter": "",
    "linkedin_url": "",
    "phone_number": "",
    "company": "Asana",
    "sources": [
      ...
    ]
  },
  "meta": {
    ...
  }
}

verify

$ hunter verify --help
...
$ hunter verify --email [email protected]
...

Output using verify

{
  "data": {
    "result": "undeliverable",
    "score": 30,
    "email": "[email protected]",
    "regexp": true,
    "gibberish": false,
    "disposable": false,
    "webmail": false,
    "mx_records": true,
    "smtp_server": true,
    "smtp_check": false,
    "accept_all": false,
    "block": false,
    "sources": [
      ...
    ]
  },
  "meta": {
    ...
  }
}

Golang Client Usage

We can use the VerifyEmail method on a *hunter.Client to verify a given email.

package main

import (
    "fmt"
    "github.com/picatz/hunter"
)

func main() {
    // create a new client using the HUNTER_API_KEY environment variable
    // and the default net/http client
    client := hunter.New(hunter.UseDefaultEnvVariable, hunter.UseDefaultHTTPClient)
    // verify email
    result, err := client.VerifyEmail(hunter.Params{
        "email": "[email protected]",
    })
    // handle error
    if err != nil {
        panic(err)
    }
    // do something with the result data
    fmt.Println(result.Data.Score)
}

We can use the FindEmail method on a *hunter.Client to generate or retrieve the most likely email address from a domain name, a first name and a last name (or a full name).

package main

import (
    "fmt"
    "github.com/picatz/hunter"
)

func main() {
    // create a new client using the HUNTER_API_KEY environment variable
    // and the default net/http client
    client := hunter.New(hunter.UseDefaultEnvVariable, hunter.UseDefaultHTTPClient)
    // find email
    results, err := client.FindEmail(hunter.Params{
        "domain":     "asana.com",
        "first_name": "Dustin",
        "last_name":  "Moskovitz",
    })
    // handle error
    if err != nil {
        panic(err)
    }
    // do something with the result data
    fmt.Println(result.Data.Score)
}

We can use the DomainSearch method on a *hunter.Client, where you give one domain name (or company name) and it returns all the email addresses found by hunter.io on the internet matching it.

package main

import (
    "fmt"
    "github.com/picatz/hunter"
)

func main() {
    // create a new client using the HUNTER_API_KEY environment variable
    // and the default net/http client
    client := hunter.New(hunter.UseDefaultEnvVariable, hunter.UseDefaultHTTPClient)
    // domain search
    results, err := client.DomainSearch(hunter.Params{"domain": "stripe.com"})
    // handle error
    if err != nil {
        panic(err)
    }
    // do something with the result data
    fmt.Println(result.Data)
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].