summaryrefslogtreecommitdiff
path: root/vendor/github.com/oschwald/geoip2-golang/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/oschwald/geoip2-golang/README.md')
-rw-r--r--vendor/github.com/oschwald/geoip2-golang/README.md90
1 files changed, 90 insertions, 0 deletions
diff --git a/vendor/github.com/oschwald/geoip2-golang/README.md b/vendor/github.com/oschwald/geoip2-golang/README.md
new file mode 100644
index 0000000..7a3c22a
--- /dev/null
+++ b/vendor/github.com/oschwald/geoip2-golang/README.md
@@ -0,0 +1,90 @@
+# GeoIP2 Reader for Go #
+
+[![Build Status](https://travis-ci.org/oschwald/geoip2-golang.png?branch=master)](https://travis-ci.org/oschwald/geoip2-golang)
+[![GoDoc](https://godoc.org/github.com/oschwald/geoip2-golang?status.png)](https://godoc.org/github.com/oschwald/geoip2-golang)
+
+This library reads MaxMind [GeoLite2](http://dev.maxmind.com/geoip/geoip2/geolite2/)
+and [GeoIP2](http://www.maxmind.com/en/geolocation_landing) databases.
+
+This library is built using
+[the Go maxminddb reader](https://github.com/oschwald/maxminddb-golang).
+All data for the database record is decoded using this library. If you only
+need several fields, you may get superior performance by using maxminddb's
+`Lookup` directly with a result struct that only contains the required fields.
+(See [example_test.go](https://github.com/oschwald/maxminddb-golang/blob/master/example_test.go)
+in the maxminddb repository for an example of this.)
+
+## Installation ##
+
+```
+go get github.com/oschwald/geoip2-golang
+```
+
+## Usage ##
+
+[See GoDoc](http://godoc.org/github.com/oschwald/geoip2-golang) for
+documentation and examples.
+
+## Example ##
+
+```go
+package main
+
+import (
+ "fmt"
+ "github.com/oschwald/geoip2-golang"
+ "log"
+ "net"
+)
+
+func main() {
+ db, err := geoip2.Open("GeoIP2-City.mmdb")
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer db.Close()
+ // If you are using strings that may be invalid, check that ip is not nil
+ ip := net.ParseIP("81.2.69.142")
+ record, err := db.City(ip)
+ if err != nil {
+ log.Fatal(err)
+ }
+ fmt.Printf("Portuguese (BR) city name: %v\n", record.City.Names["pt-BR"])
+ fmt.Printf("English subdivision name: %v\n", record.Subdivisions[0].Names["en"])
+ fmt.Printf("Russian country name: %v\n", record.Country.Names["ru"])
+ fmt.Printf("ISO country code: %v\n", record.Country.IsoCode)
+ fmt.Printf("Time zone: %v\n", record.Location.TimeZone)
+ fmt.Printf("Coordinates: %v, %v\n", record.Location.Latitude, record.Location.Longitude)
+ // Output:
+ // Portuguese (BR) city name: Londres
+ // English subdivision name: England
+ // Russian country name: Великобритания
+ // ISO country code: GB
+ // Time zone: Europe/London
+ // Coordinates: 51.5142, -0.0931
+}
+```
+
+## Testing ##
+
+Make sure you checked out test data submodule:
+
+```
+git submodule init
+git submodule update
+```
+
+Execute test suite:
+
+```
+go test
+```
+
+## Contributing ##
+
+Contributions welcome! Please fork the repository and open a pull request
+with your changes.
+
+## License ##
+
+This is free software, licensed under the ISC license.