2022-06-12 00:53:39 +00:00
|
|
|
package ipinfo
|
2021-09-05 22:54:10 +00:00
|
|
|
|
2022-06-25 15:52:00 +00:00
|
|
|
import (
|
|
|
|
|
"net"
|
|
|
|
|
|
|
|
|
|
"github.com/qdm12/gluetun/internal/models"
|
|
|
|
|
)
|
2021-09-05 22:54:10 +00:00
|
|
|
|
2022-06-12 00:53:39 +00:00
|
|
|
type Response struct {
|
2022-06-12 00:09:01 +00:00
|
|
|
IP net.IP `json:"ip,omitempty"`
|
2021-09-05 22:54:10 +00:00
|
|
|
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"`
|
|
|
|
|
}
|
|
|
|
|
|
2022-06-25 15:52:00 +00:00
|
|
|
func (r *Response) ToPublicIPModel() (model models.PublicIP) {
|
|
|
|
|
model = models.PublicIP{
|
|
|
|
|
IP: make(net.IP, len(r.IP)),
|
|
|
|
|
Region: r.Region,
|
|
|
|
|
Country: r.Country,
|
|
|
|
|
City: r.City,
|
|
|
|
|
Hostname: r.Hostname,
|
|
|
|
|
Location: r.Loc,
|
|
|
|
|
Organization: r.Org,
|
|
|
|
|
PostalCode: r.Postal,
|
|
|
|
|
Timezone: r.Timezone,
|
|
|
|
|
}
|
|
|
|
|
copy(model.IP, r.IP)
|
|
|
|
|
return model
|
2021-09-05 22:54:10 +00:00
|
|
|
}
|