Documentation ¶
Overview ¶
Package gofofa fofa client in Go
env settings: - FOFA_CLIENT_URL full fofa connnection string, format: <url>/?email=<email>&key=<key>&version=<v2> - FOFA_SERVER fofa server - FOFA_EMAIL fofa account email - FOFA_KEY fofa account key
Index ¶
- Constants
- func ExtractIconFromHtml(data []byte) string
- func FofaURLFromEnv() string
- func IconHash(iconUrl string) (hash string, err error)
- type AccountInfo
- type Client
- func (c *Client) AccountInfo() (ac AccountInfo, err error)
- func (c *Client) DumpSearch(query string, allSize int, batchSize int, fields []string, ...) (err error)
- func (c *Client) Fetch(apiURI string, params map[string]string, v interface{}) (err error)
- func (c *Client) GetContext() context.Context
- func (c *Client) HostSearch(query string, size int, fields []string, options ...SearchOptions) (res [][]string, err error)
- func (c *Client) HostSize(query string) (count int, err error)
- func (c *Client) HostStats(host string) (data HostStatsData, err error)
- func (c *Client) SetContext(ctx context.Context)
- func (c *Client) Stats(query string, size int, fields []string) (res []StatsObject, err error)
- func (c *Client) URL() string
- func (c *Client) Update(configURL string) error
- type ClientOption
- type DeductMode
- type HostResults
- type HostStatsData
- type SearchOptions
- type StatsItem
- type StatsObject
- type StatsResults
- type VipLevel
Constants ¶
const (
NoHostWithFixURL = "host field must included when fixUrl option set"
)
Variables ¶
This section is empty.
Functions ¶
func ExtractIconFromHtml ¶
ExtractIconFromHtml extract link icon from html
func FofaURLFromEnv ¶
func FofaURLFromEnv() string
FofaURLFromEnv parse fofa connection url from env, then generate url string
Types ¶
type AccountInfo ¶
type AccountInfo struct { Error bool `json:"error"` // error or not ErrMsg string `json:"errmsg,omitempty"` // error string message FCoin int `json:"fcoin"` // fcoin count FofaPoint int64 `json:"fofa_point"` // fofa point IsVIP bool `json:"isvip"` // is vip VIPLevel VipLevel `json:"vip_level"` // vip level RemainApiQuery int `json:"remain_api_query"` // available query RemainApiData int `json:"remain_api_data"` // available data amount }
AccountInfo fofa account info
func (AccountInfo) String ¶
func (ai AccountInfo) String() string
type Client ¶
type Client struct { Server string // can set local server for debugging, format: <scheme>://<host> APIVersion string // api version Email string // fofa email Key string // fofa key Account AccountInfo // fofa account info DeductMode DeductMode // Deduct Mode // contains filtered or unexported fields }
Client of fofa connection
func NewClient ¶
func NewClient(options ...ClientOption) (*Client, error)
NewClient from fofa connection string to config and with env config merge
func (*Client) AccountInfo ¶
func (c *Client) AccountInfo() (ac AccountInfo, err error)
AccountInfo fetch account info from fofa
func (*Client) DumpSearch ¶ added in v0.1.12
func (c *Client) DumpSearch(query string, allSize int, batchSize int, fields []string, onResults func([][]string, int) error, options ...SearchOptions) (err error)
DumpSearch search fofa host data query fofa query string size data size: -1 means all,0 means just data total info, >0 means actual size fields of fofa host search options for search
func (*Client) GetContext ¶ added in v0.0.9
GetContext 获取context,用于中止任务
func (*Client) HostSearch ¶
func (c *Client) HostSearch(query string, size int, fields []string, options ...SearchOptions) (res [][]string, err error)
HostSearch search fofa host data query fofa query string size data size: -1 means all,0 means just data total info, >0 means actual size fields of fofa host search options for search
func (*Client) HostStats ¶
func (c *Client) HostStats(host string) (data HostStatsData, err error)
HostStats fetch query matched host count
func (*Client) SetContext ¶ added in v0.0.9
SetContext 设置context,用于中止任务
type ClientOption ¶
func WithAccountDebug ¶ added in v0.1.11
func WithAccountDebug(v bool) ClientOption
WithAccountDebug 是否错误里面显示账号密码原始信息
func WithOnResults ¶ added in v0.0.9
func WithOnResults(onResults func(results [][]string)) ClientOption
WithOnResults set on results callback
func WithURL ¶
func WithURL(configURL string) ClientOption
WithURL configURL format: <url>/?email=<email>&key=<key>&version=<v2>&tlsdisabled=false&debuglevel=0
type DeductMode ¶
type DeductMode int
DeductMode should deduct fcoin automatically or just use free limit
const ( // DeductModeFree only use free limit size DeductModeFree DeductMode = 0 // DeductModeFCoin deduct fcoin automatically if account has fcoin DeductModeFCoin DeductMode = 1 )
func ParseDeductMode ¶
func ParseDeductMode(v string) DeductMode
ParseDeductMode parse string to DeductMode
type HostResults ¶
type HostResults struct { Mode string `json:"mode"` Error bool `json:"error"` Errmsg string `json:"errmsg"` Query string `json:"query"` Page int `json:"page"` Size int `json:"size"` // 总数 Results interface{} `json:"results"` Next string `json:"next"` }
HostResults /search/all api results
type HostStatsData ¶
type HostStatsData struct { Error bool `json:"error"` Errmsg string `json:"errmsg"` Host string `json:"host"` IP string `json:"ip"` ASN int `json:"asn"` ORG string `json:"org"` Country string `json:"country_name"` CountryCode string `json:"country_code"` Protocols []string `json:"protocol"` Ports []int `json:"port"` Categories []string `json:"category"` Products []string `json:"product"` UpdateTime string `json:"update_time"` }
HostStatsData /host api results
type SearchOptions ¶ added in v0.1.11
type SearchOptions struct { FixUrl bool // each host fix as url, like 1.1.1.1,80 will change to http://1.1.1.1, https://1.1.1.1:8443 will no change UrlPrefix string // default is http:// Full bool // search result for over a year UniqByIP bool // uniq by ip }
SearchOptions options of search, for post processors
type StatsObject ¶
StatsObject one stats object
type StatsResults ¶
type StatsResults struct { Error bool `json:"error"` Errmsg string `json:"errmsg"` Distinct map[string]interface{} `json:"distinct"` Aggs map[string]interface{} `json:"aggs"` LastUpdateTime string `json:"lastupdatetime"` }
StatsResults /search/stats api results