97 lines
2.9 KiB
Go
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 }
|