whoissdk/types.go
2026-03-19 11:53:07 +08:00

97 lines
2.9 KiB
Go

package whois
import "time"
type QueryLevel int
const (
QueryAuto QueryLevel = iota
QueryRegistryOnly
QueryRegistrarOnly
QueryBoth
)
type QueryOptions struct {
Level QueryLevel
OverrideServer string
OverrideServers []string
ReferralMaxDepth int
NegativeCacheTTL time.Duration
}
// ResultMeta provides quality and provenance diagnostics for a lookup result.
type ResultMeta struct {
Source string
Server string
Charset string
RawLen int
ReasonCode ErrorCode
Reason string
QualityScore int
}
type PersonalInfo struct {
FirstName string
LastName string
Name string
Org string
Fax string
FaxExt string
Addr string
City string
State string
Country string
Zip string
Phone string
PhoneExt string
Email string
}
type Result struct {
exists bool
domain string
domainID string
rawData string
registrar string
hasRegisterDate bool
registerDate time.Time
hasUpdateDate bool
updateDate time.Time
hasExpireDate bool
expireDate time.Time
statusRaw []string
nsServers []string
nsIps []string
dnssec string
whoisSer string
ianaID string
meta ResultMeta
registerInfo PersonalInfo
adminInfo PersonalInfo
techInfo PersonalInfo
}
func (r Result) Exists() bool { return r.exists }
func (r Result) Domain() string { return r.domain }
func (r Result) DomainID() string { return r.domainID }
func (r Result) RawData() string { return r.rawData }
func (r Result) Registrar() string { return r.registrar }
func (r Result) Registar() string { return r.registrar } // 兼容旧拼写
func (r Result) HasRegisterDate() bool { return r.hasRegisterDate }
func (r Result) RegisterDate() time.Time { return r.registerDate }
func (r Result) HasUpdateDate() bool { return r.hasUpdateDate }
func (r Result) UpdateDate() time.Time { return r.updateDate }
func (r Result) HasExpireDate() bool { return r.hasExpireDate }
func (r Result) ExpireDate() time.Time { return r.expireDate }
func (r Result) Status() []string { return r.statusRaw }
func (r Result) NsServers() []string { return r.nsServers }
func (r Result) NsIps() []string { return r.nsIps }
func (r Result) Dnssec() string { return r.dnssec }
func (r Result) WhoisSer() string { return r.whoisSer }
func (r Result) IanaID() string { return r.ianaID }
func (r Result) Meta() ResultMeta { return r.meta }
func (r Result) TypedError() error { return reasonErrorFromMeta(r.domain, r.meta) }
func (r Result) RegisterInfo() PersonalInfo { return r.registerInfo }
func (r Result) AdminInfo() PersonalInfo { return r.adminInfo }
func (r Result) TechInfo() PersonalInfo { return r.techInfo }