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
- Variables
- func ExtractIconFromHtml(data []byte) string
- func FofaURLFromEnv() string
- func IconHash(iconUrl string) (hash string, err error)
- type ASNDetail
- type AccountInfo
- type CertDetail
- type CertObject
- 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 Detail
- type HostResults
- type HostStatsData
- type IPDetail
- type IconDetail
- type SearchOptions
- type StatsItem
- type StatsObject
- type StatsResults
- type VipLevel
Constants ¶
const (
NoHostWithFixURL = "host field must included when fixUrl option set"
)
Variables ¶
var (
ErrInvalidQuery = errors.New("query is not valid")
)
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 CertDetail ¶ added in v0.2.20
type CertDetail struct {
Subject CertObject `json:"subject"`
Issuer *CertObject `json:"issuer"`
RootDomains []string `json:"domain"`
IsExpired bool `json:"is_expired"`
IsValid bool `json:"is_valid"`
NotAfter string `json:"not_after"`
NotBefore string `json:"not_before"`
}
type CertObject ¶ added in v0.2.20
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 Detail ¶ added in v0.2.21
type Detail struct {
CertDetail
IPDetail
ASNDetail
IconDetail
}
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 IconDetail ¶ added in v0.2.22
type IconDetail struct {
IconBase64 *string `json:"icon_base64"`
}
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 StatsItem ¶
type StatsItem struct {
Name string `json:"name"`
Count int `json:"count"`
Uniq map[string]int `json:"uniq,omitempty"`
Detail *Detail `json:"detail,omitempty"`
}
StatsItem one stats item
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][]*StatsItem `json:"aggs"`
LastUpdateTime string `json:"lastupdatetime"`
}
StatsResults /search/stats api results
