28 lines
662 B
Go
28 lines
662 B
Go
package models
|
|
|
|
import "net"
|
|
|
|
type IPInfoData struct {
|
|
IP net.IP `json:"public_ip"`
|
|
Region string `json:"region,omitempty"`
|
|
Country string `json:"country,omitempty"`
|
|
City string `json:"city,omitempty"`
|
|
Hostname string `json:"hostname,omitempty"`
|
|
Loc string `json:"loc,omitempty"`
|
|
Org string `json:"org,omitempty"`
|
|
Postal string `json:"postal,omitempty"`
|
|
Timezone string `json:"timezone,omitempty"`
|
|
}
|
|
|
|
func (i IPInfoData) Copy() (copied IPInfoData) {
|
|
copied = i
|
|
copied.IP = make(net.IP, len(i.IP))
|
|
copy(copied.IP, i.IP)
|
|
return copied
|
|
}
|
|
|
|
func (i *IPInfoData) SetIP(ip net.IP) {
|
|
i.IP = make(net.IP, len(ip))
|
|
copy(i.IP, ip)
|
|
}
|