onlineapi

package
v0.0.0-...-2dbdbee Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 11, 2024 License: Apache-2.0 Imports: 27 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Engine

type Engine interface {
	GetSyntaxMap() (syntax map[SyntaxType]string)
	MakeSearchSyntax(syntax map[SyntaxType]string, condition SyntaxType, checkMod SyntaxType, value string) string
	GetQueryString(domain string, config OnlineAPIConfig, filterKeyword map[string]struct{}) (query string)
	Run(domain string, apiKey string, pageIndex int, pageSize int, config OnlineAPIConfig) (pageResult []onlineSearchResult, sizeTotal int, err error)
	ParseContentResult(content []byte) (ipResult portscan.Result, domainResult domainscan.Result)
}

Engine 网络空间资产搜索引擎interface

type FOFA

type FOFA struct {
}

func (*FOFA) GetQueryString

func (f *FOFA) GetQueryString(domain string, config OnlineAPIConfig, filterKeyword map[string]struct{}) (query string)

func (*FOFA) GetSyntaxMap

func (f *FOFA) GetSyntaxMap() (syntax map[SyntaxType]string)

func (*FOFA) MakeSearchSyntax

func (f *FOFA) MakeSearchSyntax(syntax map[SyntaxType]string, condition SyntaxType, checkMod SyntaxType, value string) string

func (*FOFA) ParseContentResult

func (f *FOFA) ParseContentResult(content []byte) (ipResult portscan.Result, domainResult domainscan.Result)

func (*FOFA) Run

func (f *FOFA) Run(query string, apiKey string, pageIndex int, pageSize int, config OnlineAPIConfig) (pageResult []onlineSearchResult, sizeTotal int, err error)

type Hunter

type Hunter struct {
}

func (*Hunter) GetQueryString

func (h *Hunter) GetQueryString(domain string, config OnlineAPIConfig, filterKeyword map[string]struct{}) (query string)

func (*Hunter) GetSyntaxMap

func (h *Hunter) GetSyntaxMap() (syntax map[SyntaxType]string)

func (*Hunter) MakeSearchSyntax

func (h *Hunter) MakeSearchSyntax(syntax map[SyntaxType]string, condition SyntaxType, checkMod SyntaxType, value string) string

func (*Hunter) ParseContentResult

func (h *Hunter) ParseContentResult(content []byte) (ipResult portscan.Result, domainResult domainscan.Result)

func (*Hunter) Run

func (h *Hunter) Run(query string, apiKey string, pageIndex int, pageSize int, config OnlineAPIConfig) (pageResult []onlineSearchResult, sizeTotal int, err error)

type HunterServiceInfo

type HunterServiceInfo struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
	Data    struct {
		Total        int    `json:"total"`
		ConsumeQuota string `json:"consume_quota"`
		RestQuota    string `json:"rest_quota"`
		Arr          []struct {
			IP         string `json:"ip"`
			Port       int    `json:"port"`
			Domain     string `json:"domain"`
			Title      string `json:"web_title"`
			Protocol   string `json:"protocol"`
			Country    string `json:"country"`
			City       string `json:"city"`
			Banner     string `json:"banner"`
			StatusCode int    `json:"status_code"`
		} `json:"arr"`
	} `json:"data"`
}

HunterServiceInfo 查询结果的返回数据

type ICPInfo

type ICPInfo struct {
	Domain      string `json:"Domain"`
	Owner       string `json:"Owner"`
	CompanyName string `json:"CompanyName"`
	CompanyType string `json:"CompanyType"`
	SiteLicense string `json:"SiteLicense"`
	SiteName    string `json:"SiteName"`
	MainPage    string `json:"MainPage"`
	VerifyTime  string `json:"VerifyTime"`
}

type ICPQuery

type ICPQuery struct {
	Config         ICPQueryConfig
	ICPMap         map[string]*ICPInfo
	QueriedICPInfo map[string]*ICPInfo
	// contains filtered or unexported fields
}

func NewICPQuery

func NewICPQuery(config ICPQueryConfig) *ICPQuery

NewICPQuery 创建ICP备案查询对象

func (*ICPQuery) Do

func (i *ICPQuery) Do()

Do 执行任务

func (*ICPQuery) LookupICP

func (i *ICPQuery) LookupICP(domain string) *ICPInfo

LookupICP 从本地缓存的文件中,查询一个domain的ICP备案

func (*ICPQuery) RunICPQuery

func (i *ICPQuery) RunICPQuery(domain string) *ICPInfo

RunICPQuery 通过API在线查询一个域名的ICP备案信息

func (*ICPQuery) SaveLocalICPInfo

func (i *ICPQuery) SaveLocalICPInfo() bool

SaveLocalICPInfo 保存icp信息

type ICPQueryConfig

type ICPQueryConfig struct {
	Target string `json:"target"`
}

type OnlineAPIConfig

type OnlineAPIConfig struct {
	Target             string `json:"target"`
	OrgId              *int   `json:"orgId"`
	IsIPLocation       bool   `json:"ipLocation"`
	IsHttpx            bool   `json:"httpx"`
	IsScreenshot       bool   `json:"screenshot"`
	IsFingerprintHub   bool   `json:"fingerprinthub"`
	IsFingerprintx     bool   `json:"fingerprintx"`
	IsIconHash         bool   `json:"iconhash"`
	IsIgnoreCDN        bool   `json:"ignorecdn"`
	IsIgnoreOutofChina bool   `json:"ignoreoutofchina"`
	SearchByKeyWord    bool   `json:"keywordsearch"`
	SearchStartTime    string `json:"searchstarttime"`
	SearchLimitCount   int    `json:"searchlimitcount"`
	SearchPageSize     int    `json:"searchpagesize"`
	WorkspaceId        int    `json:"workspaceId"`
	IsProxy            bool   `json:"proxy"`
}

type OnlineSearch

type OnlineSearch struct {

	//Config 配置参数:查询的目标、关联的组织
	Config OnlineAPIConfig
	//Result quake api查询后的结果
	Result []onlineSearchResult
	//DomainResult 整理后的域名结果
	DomainResult domainscan.Result
	//IpResult 整理后的IP结果
	IpResult portscan.Result
	// contains filtered or unexported fields
}

func NewOnlineAPISearch

func NewOnlineAPISearch(config OnlineAPIConfig, apiName string) *OnlineSearch

func (*OnlineSearch) Do

func (s *OnlineSearch) Do()

Do 执行查询

func (*OnlineSearch) ParseContentResult

func (s *OnlineSearch) ParseContentResult(content []byte)

ParseContentResult 从文件内容中导入结果

func (*OnlineSearch) Query

func (s *OnlineSearch) Query(domain string, filterKeyword map[string]struct{})

Query 查询一个domain

type Quake

type Quake struct {
}

func (*Quake) GetQueryString

func (q *Quake) GetQueryString(domain string, config OnlineAPIConfig, filterKeyword map[string]struct{}) (query string)

func (*Quake) GetSyntaxMap

func (q *Quake) GetSyntaxMap() (syntax map[SyntaxType]string)

func (*Quake) MakeSearchSyntax

func (q *Quake) MakeSearchSyntax(syntax map[SyntaxType]string, condition SyntaxType, checkMod SyntaxType, value string) string

func (*Quake) ParseContentResult

func (q *Quake) ParseContentResult(content []byte) (ipResult portscan.Result, domainResult domainscan.Result)

func (*Quake) Run

func (q *Quake) Run(query string, apiKey string, pageIndex int, pageSize int, config OnlineAPIConfig) (pageResult []onlineSearchResult, sizeTotal int, err error)

type QuakeServiceInfo

type QuakeServiceInfo struct {
	//Code:在查询成功时为0(整形),在失败时为p00XX为字符串,因此无法保证正确unmarshal,因此取消code,用Message来判断
	//Code    int    `json:"code"`
	Message string `json:"message"`
	Data    []struct {
		Time      time.Time `json:"time"`
		Transport string    `json:"transport"`
		Service   struct {
			HTTP struct {
				HTMLHash string `json:"html_hash"`
				Favicon  struct {
					Hash     string `json:"hash"`
					Location string `json:"location"`
					Data     string `json:"data"`
				} `json:"favicon"`
				Robots          string `json:"robots"`
				SitemapHash     string `json:"sitemap_hash"`
				Server          string `json:"server"`
				Body            string `json:"body"`
				XPoweredBy      string `json:"x_powered_by"`
				MetaKeywords    string `json:"meta_keywords"`
				RobotsHash      string `json:"robots_hash"`
				Sitemap         string `json:"sitemap"`
				Path            string `json:"path"`
				Title           string `json:"title"`
				Host            string `json:"host"`
				SecurityText    string `json:"security_text"`
				StatusCode      int    `json:"status_code"`
				ResponseHeaders string `json:"response_headers"`
			} `json:"http"`
			Version  string `json:"version"`
			Name     string `json:"name"`
			Product  string `json:"product"`
			Banner   string `json:"banner"`
			Response string `json:"response"`
		} `json:"service"`
		Images     []interface{} `json:"images"`
		OsName     string        `json:"os_name"`
		Components []interface{} `json:"components"`
		Location   struct {
			DistrictCn  string    `json:"district_cn"`
			ProvinceCn  string    `json:"province_cn"`
			Gps         []float64 `json:"gps"`
			ProvinceEn  string    `json:"province_en"`
			CityEn      string    `json:"city_en"`
			CountryCode string    `json:"country_code"`
			CountryEn   string    `json:"country_en"`
			Radius      float64   `json:"radius"`
			DistrictEn  string    `json:"district_en"`
			Isp         string    `json:"isp"`
			StreetEn    string    `json:"street_en"`
			Owner       string    `json:"owner"`
			CityCn      string    `json:"city_cn"`
			CountryCn   string    `json:"country_cn"`
			StreetCn    string    `json:"street_cn"`
		} `json:"location"`
		Asn       int    `json:"asn"`
		Hostname  string `json:"hostname"`
		Org       string `json:"org"`
		OsVersion string `json:"os_version"`
		IsIpv6    bool   `json:"is_ipv6"`
		IP        string `json:"ip"`
		Port      int    `json:"port"`
	} `json:"data"`
	Meta struct {
		//Modified struct
		Pagination struct {
			Count        int    `json:"count"`
			Total        int    `json:"total"`
			PageIndex    int    `json:"page_index"`
			PageSize     int    `json:"page_size"`
			PaginationID string `json:"pagination_id"`
		} `json:"pagination"`
	} `json:"meta"`
}

QuakeServiceInfo Quake查询返回数据 from https://github.com/YetClass/QuakeAPI

type SyntaxType

type SyntaxType int
const (
	And SyntaxType = iota
	Or
	Equal
	Not
	After
	Title
	Body
)

type Whois

type Whois struct {
	Config           WhoisQueryConfig
	WhoisMap         map[string]*whoisparser.WhoisInfo
	QueriedWhoisInfo map[string]*whoisparser.WhoisInfo
	// contains filtered or unexported fields
}

func NewWhois

func NewWhois(config WhoisQueryConfig) *Whois

NewWhois 创建Whois对象

func (*Whois) Do

func (w *Whois) Do()

Do 执行Whois查询

func (*Whois) LookupWhois

func (w *Whois) LookupWhois(domain string) *whoisparser.WhoisInfo

LookupWhois 查询一个whois信息

func (*Whois) SaveLocalWhoisInfo

func (w *Whois) SaveLocalWhoisInfo() bool

SaveLocalWhoisInfo 将whois信息保存为本地文件

type WhoisQueryConfig

type WhoisQueryConfig struct {
	Target string `json:"target"`
}

type ZeroZone

type ZeroZone struct {
}

func (*ZeroZone) GetQueryString

func (*ZeroZone) GetQueryString(domain string, config OnlineAPIConfig, filterKeyword map[string]struct{}) (query string)

func (*ZeroZone) GetSyntaxMap

func (*ZeroZone) GetSyntaxMap() (syntax map[SyntaxType]string)

func (*ZeroZone) MakeSearchSyntax

func (*ZeroZone) MakeSearchSyntax(syntax map[SyntaxType]string, condition SyntaxType, checkMod SyntaxType, value string) string

func (*ZeroZone) ParseContentResult

func (z *ZeroZone) ParseContentResult(content []byte) (ipResult portscan.Result, domainResult domainscan.Result)

func (*ZeroZone) Run

func (*ZeroZone) Run(domain string, apiKey string, pageIndex int, pageSize int, config OnlineAPIConfig) (pageResult []onlineSearchResult, sizeTotal int, err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL