Documentation
¶
Index ¶
- Constants
- func ScanWrite(s Scanner, w Writer) error
- type DBReader
- type DBScanner
- func (s *DBScanner) Close() error
- func (s *DBScanner) Err() error
- func (s *DBScanner) Find(ip net.IP) (*ipx.Range, []string, error)
- func (s *DBScanner) Init(meta model.Meta) error
- func (s *DBScanner) Meta() model.Meta
- func (s *DBScanner) Result() (*ipx.Range, []string)
- func (s *DBScanner) Scan() bool
- type FieldSelector
- type IPScanScanner
- type IPScanWriter
- type Reader
- type ScanWriter
- type Scanner
- type Writer
Constants ¶
const ( CommentPrefix = "#" MetaPrefix = "# Meta: " FieldSep = "," )
const ( SelectorGroupSep = "|" SelectorFieldSep = "," SelectorRuleSep = ":" SelectorKeyValueSep = "=" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type DBReader ¶
type DBReader struct {
// contains filtered or unexported fields
}
func NewDBReader ¶
func NewDBReader(db db.Database, selector *FieldSelector) *DBReader
NewDBReader 初始化 IP 库读取器
type DBScanner ¶
type DBScanner struct {
// contains filtered or unexported fields
}
DBScanner IP库扫描读取工具
func NewDBScanner ¶
NewDBScanner 初始化 IP 库扫描读取器
type FieldSelector ¶
type FieldSelector struct {
// contains filtered or unexported fields
}
FieldSelector 字段选择器
func NewFieldSelector ¶
func NewFieldSelector(arg string) *FieldSelector
NewFieldSelector 初始化字段选择器 用于选择输出的字段,支持简单的匹配逻辑 输入的参数格式为: <fields>[|<rule1>:<fields>|<rule2>:<fields>|<default fields>] @ <fields> - 字段列表,表示需要输出的字段,字段之间使用","分隔 @ <rule> - 匹配规则,非必填项,以<key>=<value>表示,匹配上的话,则使用<rule>对应的<fields>,匹配优先级为<fields>的顺序 @ <default fields> - 默认字段列表,非必填项,若<default fileds>为空,则使用<fields> @ sep - Select函数输出数据的分隔符,默认为"," 举例 country,province,city,isp|country=中国:country,province,city,isp|country,-,-,- 针对国家区分IP库精度,若国家是"中国",返回"国家,省份,城市,运营商",若国家不是"中国",返回"国家,-,-,-" country|country=中国:CN|OV 返回中国和海外 isp|isp=电信:电信|isp=联通:联通|isp=移动:移动|其他 返回电信、联通、移动和其他运营商
type IPScanScanner ¶
type IPScanScanner struct {
FilePath string
// contains filtered or unexported fields
}
IPScanScanner IPScan 扫描工具
func NewIPScanScanner ¶
func NewIPScanScanner(filePath string) (*IPScanScanner, error)
NewIPScanScanner 初始化 IPScan 扫描实例
func (*IPScanScanner) Scan ¶
func (s *IPScanScanner) Scan() bool
Scan 扫描下一条数据,返回 true 表示有数据,false 表示没有数据
type IPScanWriter ¶
type IPScanWriter struct {
// contains filtered or unexported fields
}
IPScanWriter IPScan 写入工具
func NewIPScanWriter ¶
NewIPScanWriter 初始化 IPScan 写入实例
type Reader ¶
type Reader interface {
// Meta 返回元数据
Meta() model.Meta
// Find 查询IP所在网段和对应数据
Find(ip net.IP) (*ipx.Range, []string, error)
// Close 关闭
Close() error
}
Reader IP库读取工具 从数据库中获取IP的地理位置信息,并格式化数据
type ScanWriter ¶
ScanWriter IP库扫描写入工具
func NewScanWriter ¶
func NewScanWriter(s Scanner, w Writer) *ScanWriter
NewScanWriter 初始化 IP 库扫描写入实例