geoip

package
v0.13.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 1, 2024 License: GPL-2.0 Imports: 10 Imported by: 0

Documentation

Overview

*

  • @license
  • Copyright (C) 2018 Dinko Korunic, InfoMAR *
  • This program is free software; you can redistribute it and/or modify it
  • under the terms of the GNU General Public License as published by the
  • Free Software Foundation; either version 2 of the License, or (at your
  • option) any later version. *
  • This program is distributed in the hope that it will be useful, but
  • WITHOUT ANY WARRANTY; without even the implied warranty of
  • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  • General Public License for more details. *
  • You should have received a copy of the GNU General Public License along
  • with this program; if not, write to the Free Software Foundation, Inc.,
  • 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Index

Constants

View Source
const (
	// URL is a default GeoIP URL with JSON response.
	URL = "https://ifconfig.co/json"

	// DefaultTimeout is a default Ifconfig/GeoIP request timeout.
	DefaultTimeout = 10 * time.Second
)

Variables

View Source
var ErrNilBody = errors.New("client body is nil")

Functions

This section is empty.

Types

type Client

type Client struct {
	URL *url.URL
	// contains filtered or unexported fields
}

Client is an Ifconfig client that performs simple geolocation.

func NewClient

func NewClient() (*Client, error)

NewClient prepares HTTP client structure for Ifconfig API request.

func NewClientWithContext

func NewClientWithContext(ctx context.Context) (*Client, error)

NewClientWithContext prepares HTTP client structure for Ifconfig API request with ctx Context.

func (*Client) GetResponse

func (c *Client) GetResponse() (Response, error)

GetResponse fetches a HTTP response with JSON body from ifconfig.co site and parses it.

type Response

type Response struct {
	IP         string      `json:"ip"`
	IPdecimal  json.Number `json:"ip_decimal"`
	Country    string      `json:"country"`
	CountryISO string      `json:"country_iso"`
	City       string      `json:"city"`
	Hostname   string      `json:"hostname"`
}

Response is a structure for parsed ifconfig.co JSON response.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL