pax_global_header00006660000000000000000000000064150753254440014523gustar00rootroot0000000000000052 comment=524580658309a595eea5965ad4d8813ce98230ed golang-github-oschwald-maxminddb-golang-v2-2.0.0/000077500000000000000000000000001507532544400216065ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/.github/000077500000000000000000000000001507532544400231465ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/.github/dependabot.yml000066400000000000000000000003501507532544400257740ustar00rootroot00000000000000version: 2 updates: - package-ecosystem: gomod directory: "/" schedule: interval: daily time: "13:00" open-pull-requests-limit: 10 - package-ecosystem: "github-actions" directory: "/" schedule: interval: daily golang-github-oschwald-maxminddb-golang-v2-2.0.0/.github/workflows/000077500000000000000000000000001507532544400252035ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/.github/workflows/codeql-analysis.yml000066400000000000000000000032061507532544400310170ustar00rootroot00000000000000name: "Code scanning - action" on: push: branches-ignore: - 'dependabot/**' pull_request: schedule: - cron: '0 13 * * 4' permissions: contents: read security-events: write jobs: CodeQL-Build: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v5 with: # We must fetch at least the immediate parents so that if this is # a pull request then we can checkout the head. fetch-depth: 2 # If this run was triggered by a pull request event, then checkout # the head of the pull request instead of the merge commit. - run: git checkout HEAD^2 if: ${{ github.event_name == 'pull_request' }} # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v4 # Override language selection by uncommenting this and choosing your languages # with: # languages: go, javascript, csharp, python, cpp, java # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild uses: github/codeql-action/autobuild@v4 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines # and modify them (or add more) to build your code if your project # uses a compiled language #- run: | # make bootstrap # make release - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v4 golang-github-oschwald-maxminddb-golang-v2-2.0.0/.github/workflows/go.yml000066400000000000000000000013121507532544400263300ustar00rootroot00000000000000name: Go on: [push, pull_request] permissions: contents: read jobs: build: name: Build strategy: matrix: go-version: [1.24, 1.25] platform: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.platform }} steps: - name: Set up Go 1.x uses: actions/setup-go@v6 with: go-version: ${{ matrix.go-version }} id: go - name: Check out code into the Go module directory uses: actions/checkout@v5 with: submodules: true - name: Get dependencies run: go get -v -t -d ./... - name: Build run: go build -v . - name: Test run: go test -race -v ./... golang-github-oschwald-maxminddb-golang-v2-2.0.0/.github/workflows/golangci-lint.yml000066400000000000000000000004521507532544400304560ustar00rootroot00000000000000name: golangci-lint on: [push, pull_request] permissions: contents: read jobs: golangci: name: lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - name: golangci-lint uses: golangci/golangci-lint-action@v8 with: version: latest golang-github-oschwald-maxminddb-golang-v2-2.0.0/.gitignore000066400000000000000000000002001507532544400235660ustar00rootroot00000000000000.vscode *.out *.sw? *.test # Claude Code session files .claude/ CLAUDE.md # Test databases that shouldn't be committed *.mmdb golang-github-oschwald-maxminddb-golang-v2-2.0.0/.gitmodules000066400000000000000000000001331507532544400237600ustar00rootroot00000000000000[submodule "test-data"] path = test-data url = https://github.com/maxmind/MaxMind-DB.git golang-github-oschwald-maxminddb-golang-v2-2.0.0/.golangci.yml000066400000000000000000000102571507532544400241770ustar00rootroot00000000000000version: "2" run: go: "1.24" tests: true allow-parallel-runners: true linters: default: all disable: - cyclop - depguard - err113 - exhaustive - exhaustruct - forcetypeassert - funlen - gochecknoglobals - gocognit - godox - gosmopolitan - inamedparam - interfacebloat # Seems unstable. It will sometimes fire and other times not. - ireturn - lll - mnd - nlreturn - noinlineerr - nonamedreturns - paralleltest - testpackage - thelper - varnamelen - wrapcheck - wsl - wsl_v5 settings: errcheck: exclude-functions: - (*github.com/oschwald/maxminddb-golang/v2.Reader).Close errorlint: errorf: true asserts: true comparison: true exhaustive: default-signifies-exhaustive: true forbidigo: forbid: - pattern: Geoip msg: you should use `GeoIP` - pattern: geoIP msg: you should use `geoip` - pattern: Maxmind msg: you should use `MaxMind` - pattern: ^maxMind msg: you should use `maxmind` - pattern: Minfraud msg: you should use `MinFraud` - pattern: ^minFraud msg: you should use `minfraud` - pattern: ^math.Max$ msg: you should use the max built-in instead. - pattern: ^math.Min$ msg: you should use the min built-in instead. - pattern: ^os.IsNotExist msg: As per their docs, new code should use errors.Is(err, fs.ErrNotExist). - pattern: ^os.IsExist msg: As per their docs, new code should use errors.Is(err, fs.ErrExist) gosec: excludes: - G115 # Potential file inclusion via variable - we only open files asked by # the user of the API. - G304 govet: disable: - shadow enable-all: true lll: line-length: 120 tab-width: 4 misspell: locale: US extra-words: - typo: marshall correction: marshal - typo: marshalling correction: marshaling - typo: marshalls correction: marshals - typo: unmarshall correction: unmarshal - typo: unmarshalling correction: unmarshaling - typo: unmarshalls correction: unmarshals nolintlint: require-explanation: true require-specific: true allow-no-explanation: - lll - misspell allow-unused: false revive: severity: warning enable-all-rules: true rules: - name: add-constant disabled: true - name: cognitive-complexity disabled: true - name: confusing-naming disabled: true - name: confusing-results disabled: true - name: cyclomatic disabled: true - name: deep-exit disabled: true - name: flag-parameter disabled: true - name: function-length disabled: true - name: function-result-limit disabled: true - name: line-length-limit disabled: true - name: max-public-structs disabled: true - name: nested-structs disabled: true - name: package-directory-mismatch severity: warning arguments: - ignore-directories: - maxminddb-golang - name: unchecked-type-assertion disabled: true - name: unhandled-error disabled: true tagliatelle: case: rules: avro: snake bson: snake env: upperSnake envconfig: upperSnake json: snake mapstructure: snake xml: snake yaml: snake unparam: check-exported: true exclusions: warn-unused: true rules: - linters: - govet - revive path: _test.go text: 'fieldalignment:' formatters: enable: - gci - gofmt - gofumpt - goimports - golines settings: gci: sections: - standard - default - prefix(github.com/oschwald/maxminddb-golang) gofumpt: extra-rules: true golang-github-oschwald-maxminddb-golang-v2-2.0.0/CHANGELOG.md000066400000000000000000000271651507532544400234320ustar00rootroot00000000000000# Changes ## 2.0.0 - 2025-10-18 - BREAKING CHANGE: Removed deprecated `FromBytes`. Use `OpenBytes` instead. - Fixed verifier metadata error message to require a non-empty map for the database description. GitHub #187. - Introduces the v2 API with `Reader.Lookup(ip).Decode(...)`, `netip.Addr` support, custom decoder interfaces, and richer error reporting. - See MIGRATION.md for guidance on upgrading projects from v1 to v2. ## 2.0.0-beta.10 - 2025-08-23 - Replaced `runtime.SetFinalizer` with `runtime.AddCleanup` for resource cleanup in Go 1.24+. This provides more reliable finalization behavior and better garbage collection performance. ## 2.0.0-beta.9 - 2025-08-23 - **SECURITY**: Fixed integer overflow vulnerability in search tree size calculation that could potentially allow malformed databases to trigger security issues. - **SECURITY**: Enhanced bounds checking in tree traversal functions to return proper errors instead of silent failures when encountering malformed databases. - Added validation for invalid prefixes in `NetworksWithin` to prevent unexpected behavior with malformed input. - Added `SkipEmptyValues()` option for `Networks` and `NetworksWithin` to skip networks whose data is an empty map or empty array. This is useful for databases that store empty maps or arrays for records without meaningful data. GitHub #172. - Optimized custom unmarshaler type assertion to use Go 1.25's `reflect.TypeAssert` when available, reducing allocations in reflection code paths. - Improved memory mapping implementation by using `SyscallConn()` instead of `Fd()` to avoid side effects and prepare for Go 1.25+ Windows I/O enhancements. Pull request by database64128. GitHub #179. - Added `OpenBytes` function for better API discoverability and consistency with `Open()`. `FromBytes` is now deprecated and will be removed in a future version. ## 2.0.0-beta.8 - 2025-07-15 - Fixed "no next offset available" error that occurred when using custom unmarshalers that decode container types (maps, slices) in struct fields. The reflection decoder now correctly calculates field positions when advancing to the next field after custom unmarshaling. ## 2.0.0-beta.7 - 2025-07-07 * Update capitalization of "uint" in `ReadUInt*` to match `KindUint*` as well as the Go standard library. ## 2.0.0-beta.6 - 2025-07-07 * Invalid release with no code changes. ## 2.0.0-beta.5 - 2025-07-06 - Added `Offset()` method to `Decoder` to get the current database offset. This enables custom unmarshalers to implement caching for improved performance when loading databases with duplicate data structures. - Fixed infinite recursion in pointer-to-pointer data structures, which are invalid per the MaxMind DB specification. ## 2.0.0-beta.4 - 2025-07-05 - **BREAKING CHANGE**: Removed experimental `deserializer` interface and supporting code. Applications using this interface should migrate to the `Unmarshaler` interface by implementing `UnmarshalMaxMindDB(d *Decoder) error` instead. - `Open` and `FromBytes` now accept options. - **BREAKING CHANGE**: `IncludeNetworksWithoutData` and `IncludeAliasedNetworks` now return a `NetworksOption` rather than being one themselves. These must now be called as functions: `Networks(IncludeAliasedNetworks())` instead of `Networks(IncludeAliasedNetworks)`. This was done to improve the documentation organization. - Added `Unmarshaler` interface to allow custom decoding implementations for performance-critical applications. Types implementing `UnmarshalMaxMindDB(d *Decoder) error` will automatically use custom decoding logic instead of reflection, following the same pattern as `json.Unmarshaler`. - Added public `Decoder` type and `Kind` constants in `mmdbdata` package for manual decoding. `Decoder` provides methods like `ReadMap()`, `ReadSlice()`, `ReadString()`, `ReadUInt32()`, `PeekKind()`, etc. `Kind` type includes helper methods `String()`, `IsContainer()`, and `IsScalar()` for type introspection. The main `maxminddb` package re-exports these types for backward compatibility. `NewDecoder()` supports an options pattern for future extensibility. - Enhanced `UnmarshalMaxMindDB` to work with nested struct fields, slice elements, and map values. The custom unmarshaler is now called recursively for any type that implements the `Unmarshaler` interface, similar to `encoding/json`. - Improved error messages to include byte offset information and, for the reflection-based API, path information for nested structures using JSON Pointer format. For example, errors may now show "at offset 1234, path /city/names/en" or "at offset 1234, path /list/0/name" instead of just the underlying error message. - **PERFORMANCE**: Added string interning optimization that reduces allocations while maintaining thread safety. Reduces allocation count from 33 to 10 per operation in downstream libraries. Uses a fixed 512-entry cache with per-entry mutexes for bounded memory usage (~8KB) while minimizing lock contention. ## 2.0.0-beta.3 - 2025-02-16 - `Open` will now fall back to loading the database in memory if the file-system does not support `mmap`. Pull request by database64128. GitHub #163. - Made significant improvements to the Windows memory-map handling. GitHub #162. - Fix an integer overflow on large databases when using a 32-bit architecture. See ipinfo/mmdbctl#33. ## 2.0.0-beta.2 - 2024-11-14 - Allow negative indexes for arrays when using `DecodePath`. #152 - Add `IncludeNetworksWithoutData` option for `Networks` and `NetworksWithin`. #155 and #156 ## 2.0.0-beta.1 - 2024-08-18 This is the first beta of the v2 releases. Go 1.23 is required. I don't expect to do a final release until Go 1.24 is available. See #141 for the v2 roadmap. Notable changes: - `(*Reader).Lookup` now takes only the IP address and returns a `Result`. `Lookup(ip, &rec)` would now become `Lookup(ip).Decode(&rec)`. - `(*Reader).LookupNetwork` has been removed. To get the network for a result, use `(Result).Prefix()`. - `(*Reader).LookupOffset` now _takes_ an offset and returns a `Result`. `Result` has an `Offset()` method that returns the offset value. `(*Reader).Decode` has been removed. - Use of `net.IP` and `*net.IPNet` have been replaced with `netip.Addr` and `netip.Prefix`. - You may now decode a particular path within a database record using `(Result).DecodePath`. For instance, to decode just the country code in GeoLite2 Country to a string called `code`, you might do something like `Lookup(ip).DecodePath(&code, "country", "iso_code")`. Strings should be used for map keys and ints for array indexes. - `(*Reader).Networks` and `(*Reader).NetworksWithin` now return a Go 1.23 iterator of `Result` values. Aliased networks are now skipped by default. If you wish to include them, use the `IncludeAliasedNetworks` option. ## 1.13.1 - 2024-06-28 - Return the `*net.IPNet` in canonical form when using `NetworksWithin` to look up a network more specific than the one in the database. Previously, the `IP` field on the `*net.IPNet` would be set to the IP from the lookup network rather than the first IP of the network. - `NetworksWithin` will now correctly handle an `*net.IPNet` parameter that is not in canonical form. This issue would only occur if the `*net.IPNet` was manually constructed, as `net.ParseCIDR` returns the value in canonical form even if the input string is not. ## 1.13.0 - 2024-06-03 - Go 1.21 or greater is now required. - The error messages when decoding have been improved. #119 ## 1.12.0 - 2023-08-01 - The `wasi` target is now built without memory-mapping support. Pull request by Alex Kashintsev. GitHub #114. - When decoding to a map of non-scalar, non-interface types such as a `map[string]map[string]any`, the decoder failed to zero out the value for the map elements, which could result in incorrect decoding. Reported by JT Olio. GitHub #115. ## 1.11.0 - 2023-06-18 - `wasm` and `wasip1` targets are now built without memory-mapping support. Pull request by Randy Reddig. GitHub #110. **Full Changelog**: https://github.com/oschwald/maxminddb-golang/compare/v1.10.0...v1.11.0 ## 1.10.0 - 2022-08-07 - Set Go version in go.mod file to 1.18. ## 1.9.0 - 2022-03-26 - Set the minimum Go version in the go.mod file to 1.17. - Updated dependencies. - Minor performance improvements to the custom deserializer feature added in 1.8.0. ## 1.8.0 - 2020-11-23 - Added `maxminddb.SkipAliasedNetworks` option to `Networks` and `NetworksWithin` methods. When set, this option will cause the iterator to skip networks that are aliases of the IPv4 tree. - Added experimental custom deserializer support. This allows much more control over the deserialization. The API is subject to change and you should use at your own risk. ## 1.7.0 - 2020-06-13 - Add `NetworksWithin` method. This returns an iterator that traverses all networks in the database that are contained in the given network. Pull request by Olaf Alders. GitHub #65. ## 1.6.0 - 2019-12-25 - This module now uses Go modules. Requested by Matthew Rothenberg. GitHub #49. - Plan 9 is now supported. Pull request by Jacob Moody. GitHub #61. - Documentation fixes. Pull request by Olaf Alders. GitHub #62. - Thread-safety is now mentioned in the documentation. Requested by Ken Sedgwick. GitHub #39. - Fix off-by-one error in file offset safety check. Reported by Will Storey. GitHub #63. ## 1.5.0 - 2019-09-11 - Drop support for Go 1.7 and 1.8. - Minor performance improvements. ## 1.4.0 - 2019-08-28 - Add the method `LookupNetwork`. This returns the network that the record belongs to as well as a boolean indicating whether there was a record for the IP address in the database. GitHub #59. - Improve performance. ## 1.3.1 - 2019-08-28 - Fix issue with the finalizer running too early on Go 1.12 when using the Verify method. Reported by Robert-André Mauchin. GitHub #55. - Remove unnecessary call to reflect.ValueOf. PR by SenseyeDeveloper. GitHub #53. ## 1.3.0 - 2018-02-25 - The methods on the `maxminddb.Reader` struct now return an error if called on a closed database reader. Previously, this could cause a segmentation violation when using a memory-mapped file. - The `Close` method on the `maxminddb.Reader` struct now sets the underlying buffer to nil, even when using `FromBytes` or `Open` on Google App Engine. - No longer uses constants from `syscall` ## 1.2.1 - 2018-01-03 - Fix incorrect index being used when decoding into anonymous struct fields. PR #42 by Andy Bursavich. ## 1.2.0 - 2017-05-05 - The database decoder now does bound checking when decoding data from the database. This is to help ensure that the reader does not panic when given a corrupt database to decode. Closes #37. - The reader will now return an error on a data structure with a depth greater than 512. This is done to prevent the possibility of a stack overflow on a cyclic data structure in a corrupt database. This matches the maximum depth allowed by `libmaxminddb`. All MaxMind databases currently have a depth of less than five. ## 1.1.0 - 2016-12-31 - Added appengine build tag for Windows. When enabled, memory-mapping will be disabled in the Windows build as it is for the non-Windows build. Pull request #35 by Ingo Oeser. - SetFinalizer is now used to unmap files if the user fails to close the reader. Using `r.Close()` is still recommended for most use cases. - Previously, an unsafe conversion between `[]byte` and string was used to avoid unnecessary allocations when decoding struct keys. The decoder now relies on a compiler optimization on `string([]byte)` map lookups to achieve this rather than using `unsafe`. ## 1.0.0 - 2016-11-09 New release for those using tagged releases. golang-github-oschwald-maxminddb-golang-v2-2.0.0/LICENSE000066400000000000000000000014041507532544400226120ustar00rootroot00000000000000ISC License Copyright (c) 2015, Gregory J. Oschwald Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. golang-github-oschwald-maxminddb-golang-v2-2.0.0/MIGRATION.md000066400000000000000000000055161507532544400234700ustar00rootroot00000000000000# Migrating from v1 to v2 ## Package import ```go - import "github.com/oschwald/maxminddb-golang" + import "github.com/oschwald/maxminddb-golang/v2" ``` ## Lookup API - v1: `err := reader.Lookup(net.IP, &result)` - v2: `err := reader.Lookup(netip.Addr).Decode(&result)` ### Migration tips - Replace `net.IP` inputs with `net/netip`. Use `netip.ParseAddr` or `addr.AsSlice()` helpers when interoperating with code that still expects `net.IP`. - The new `Result` type returned from `Lookup` exposes `Decode` and `DecodePath` methods. Update call sites to chain `Decode` or `DecodePath` instead of passing the destination pointer to `Lookup`. ## Manual decoding improvements - Custom types can implement `UnmarshalMaxMindDB(d *maxminddb.Decoder) error` to skip reflection and zero allocations for hot paths. - `maxminddb.Decoder` mirrors the APIs from `internal/decoder`, giving fine grained access to the underlying data section. - `DecodePath` works on the result object, supporting nested lookups without decoding entire records. ## Opening databases from byte slice - v1: `reader, err := maxminddb.FromBytes(databaseBytes)` - v2: `reader, err := maxminddb.OpenBytes(databaseBytes)` ## Network iteration - `Reader.Networks()` and `Reader.NetworksWithin()` now yield iterators that work efficiently with Go 1.23+ `range` syntax: ```go for result := range reader.Networks() { var record struct { ConnectionType string `maxminddb:"connection_type"` } if err := result.Decode(&record); err != nil { return err } fmt.Println(result.Prefix(), record.ConnectionType) } ``` - Replace the v1 iterator pattern (`for networks.Next() { ... networks.Network(&record) }`) with the Go 1.23 iteration shown above. `Decode` returns any iterator or lookup error, so separate calls to `Result.Err()` are rarely needed. - Options such as `SkipAliasedNetworks` now use an options pattern. Pass them as `Networks(SkipAliasedNetworks())` or `NetworksWithin(prefix, SkipEmptyValues())`. - New helpers include `SkipEmptyValues()` to omit entries with empty maps and `IncludeNetworksWithoutData()` to keep networks that lack data records. ## Additional API additions - `Reader.Verify()` validates the database structure and metadata, exposing precise `InvalidDatabaseError` messages when corruption is detected. - `Metadata.BuildTime()` converts the build epoch to `time.Time`. - `Result.DecodePath` now supports negative indices for arrays, matching Go slices: `result.DecodePath(&value, "array", -1)` fetches the last element. ## Error handling - All decoder and verifier errors wrap `mmdberrors.InvalidDatabaseError`, which carries offset and JSON Pointer style path clues. Display those details to speed up debugging malformed databases. For more background on the architectural changes, see the per-release notes in `CHANGELOG.md`. golang-github-oschwald-maxminddb-golang-v2-2.0.0/README.md000066400000000000000000000145241507532544400230730ustar00rootroot00000000000000# MaxMind DB Reader for Go [![Go Reference](https://pkg.go.dev/badge/github.com/oschwald/maxminddb-golang/v2.svg)](https://pkg.go.dev/github.com/oschwald/maxminddb-golang/v2) This is a Go reader for the MaxMind DB format. Although this can be used to read [GeoLite2](https://dev.maxmind.com/geoip/geolite2-free-geolocation-data) and [GeoIP2](https://www.maxmind.com/en/geoip2-databases) databases, [geoip2](https://github.com/oschwald/geoip2-golang) provides a higher-level API for doing so. This is not an official MaxMind API. ## Installation ```bash go get github.com/oschwald/maxminddb-golang/v2 ``` ## Version 2.0 Features Version 2.0 includes significant improvements: - **Modern API**: Uses `netip.Addr` instead of `net.IP` for better performance - **Custom Unmarshaling**: Implement `Unmarshaler` interface for zero-allocation decoding - **Network Iteration**: Iterate over all networks in a database with `Networks()` and `NetworksWithin()` - **Enhanced Performance**: Optimized data structures and decoding paths - **Go 1.24+ Support**: Takes advantage of modern Go features including iterators - **Better Error Handling**: More detailed error types and improved debugging - **Integrity Checks**: Validate databases with `Reader.Verify()` and access metadata helpers such as `Metadata.BuildTime()` See [MIGRATION.md](MIGRATION.md) for guidance on updating existing v1 code. ## Quick Start ```go package main import ( "fmt" "log" "net/netip" "github.com/oschwald/maxminddb-golang/v2" ) func main() { db, err := maxminddb.Open("GeoLite2-City.mmdb") if err != nil { log.Fatal(err) } defer db.Close() ip, err := netip.ParseAddr("81.2.69.142") if err != nil { log.Fatal(err) } var record struct { Country struct { ISOCode string `maxminddb:"iso_code"` Names map[string]string `maxminddb:"names"` } `maxminddb:"country"` City struct { Names map[string]string `maxminddb:"names"` } `maxminddb:"city"` } err = db.Lookup(ip).Decode(&record) if err != nil { log.Fatal(err) } fmt.Printf("Country: %s (%s)\n", record.Country.Names["en"], record.Country.ISOCode) fmt.Printf("City: %s\n", record.City.Names["en"]) } ``` ## Usage Patterns ### Basic Lookup ```go db, err := maxminddb.Open("GeoLite2-City.mmdb") if err != nil { log.Fatal(err) } defer db.Close() var record any ip := netip.MustParseAddr("1.2.3.4") err = db.Lookup(ip).Decode(&record) ``` ### Custom Struct Decoding ```go type City struct { Country struct { ISOCode string `maxminddb:"iso_code"` Names struct { English string `maxminddb:"en"` German string `maxminddb:"de"` } `maxminddb:"names"` } `maxminddb:"country"` } var city City err = db.Lookup(ip).Decode(&city) ``` ### High-Performance Custom Unmarshaling ```go type FastCity struct { CountryISO string CityName string } func (c *FastCity) UnmarshalMaxMindDB(d *maxminddb.Decoder) error { mapIter, size, err := d.ReadMap() if err != nil { return err } // Pre-allocate with correct capacity for better performance _ = size // Use for pre-allocation if storing map data for key, err := range mapIter { if err != nil { return err } switch string(key) { case "country": countryIter, _, err := d.ReadMap() if err != nil { return err } for countryKey, countryErr := range countryIter { if countryErr != nil { return countryErr } if string(countryKey) == "iso_code" { c.CountryISO, err = d.ReadString() if err != nil { return err } } else { if err := d.SkipValue(); err != nil { return err } } } default: if err := d.SkipValue(); err != nil { return err } } } return nil } ``` ### Network Iteration ```go // Iterate over all networks in the database for result := range db.Networks() { var record struct { Country struct { ISOCode string `maxminddb:"iso_code"` } `maxminddb:"country"` } err := result.Decode(&record) if err != nil { log.Fatal(err) } fmt.Printf("%s: %s\n", result.Prefix(), record.Country.ISOCode) } // Iterate over networks within a specific prefix prefix := netip.MustParsePrefix("192.168.0.0/16") for result := range db.NetworksWithin(prefix) { // Process networks within 192.168.0.0/16 } ``` ### Path-Based Decoding ```go var countryCode string err = db.Lookup(ip).DecodePath(&countryCode, "country", "iso_code") var cityName string err = db.Lookup(ip).DecodePath(&cityName, "city", "names", "en") ``` ## Supported Database Types This library supports **all MaxMind DB (.mmdb) format databases**, including: **MaxMind Official Databases:** - **GeoLite/GeoIP City**: Comprehensive location data including city, country, subdivisions - **GeoLite/GeoIP Country**: Country-level geolocation data - **GeoLite ASN**: Autonomous System Number and organization data - **GeoIP Anonymous IP**: Anonymous network and proxy detection - **GeoIP Enterprise**: Enhanced City data with additional business fields - **GeoIP ISP**: Internet service provider information - **GeoIP Domain**: Second-level domain data - **GeoIP Connection Type**: Connection type identification **Third-Party Databases:** - **DB-IP databases**: Compatible with DB-IP's .mmdb format databases - **IPinfo databases**: Works with IPinfo's MaxMind DB format files - **Custom databases**: Any database following the MaxMind DB file format specification The library is format-agnostic and will work with any valid .mmdb file regardless of the data provider. ## Performance Tips 1. **Reuse Reader instances**: The `Reader` is thread-safe and should be reused across goroutines 2. **Use specific structs**: Only decode the fields you need rather than using `any` 3. **Implement Unmarshaler**: For high-throughput applications, implement custom unmarshaling 4. **Consider caching**: Use `Result.Offset()` as a cache key for database records ## Getting Database Files ### Free GeoLite2 Databases Download from [MaxMind's GeoLite page](https://dev.maxmind.com/geoip/geolite2-free-geolocation-data). ## Documentation - [Go Reference](https://pkg.go.dev/github.com/oschwald/maxminddb-golang/v2) - [MaxMind DB File Format Specification](https://maxmind.github.io/MaxMind-DB/) ## Requirements - Go 1.24 or later - MaxMind DB file in .mmdb format ## 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. golang-github-oschwald-maxminddb-golang-v2-2.0.0/errors.go000066400000000000000000000006531507532544400234550ustar00rootroot00000000000000package maxminddb import "github.com/oschwald/maxminddb-golang/v2/internal/mmdberrors" type ( // InvalidDatabaseError is returned when the database contains invalid data // and cannot be parsed. InvalidDatabaseError = mmdberrors.InvalidDatabaseError // UnmarshalTypeError is returned when the value in the database cannot be // assigned to the specified data type. UnmarshalTypeError = mmdberrors.UnmarshalTypeError ) golang-github-oschwald-maxminddb-golang-v2-2.0.0/example_test.go000066400000000000000000000234571507532544400246420ustar00rootroot00000000000000package maxminddb_test import ( "fmt" "log" "net/netip" "github.com/oschwald/maxminddb-golang/v2" "github.com/oschwald/maxminddb-golang/v2/mmdbdata" ) // This example shows how to decode to a struct. func ExampleReader_Lookup_struct() { db, err := maxminddb.Open("test-data/test-data/GeoIP2-City-Test.mmdb") if err != nil { log.Fatal(err) } defer db.Close() addr := netip.MustParseAddr("81.2.69.142") var record struct { Country struct { ISOCode string `maxminddb:"iso_code"` } `maxminddb:"country"` } // Or any appropriate struct err = db.Lookup(addr).Decode(&record) if err != nil { log.Panic(err) } fmt.Print(record.Country.ISOCode) // Output: // GB } // This example demonstrates how to decode to an any. func ExampleReader_Lookup_interface() { db, err := maxminddb.Open("test-data/test-data/GeoIP2-City-Test.mmdb") if err != nil { log.Fatal(err) } defer db.Close() addr := netip.MustParseAddr("81.2.69.142") var record any err = db.Lookup(addr).Decode(&record) if err != nil { log.Panic(err) } fmt.Printf("%v", record) // Output: // map[city:map[geoname_id:2643743 names:map[de:London en:London es:Londres fr:Londres ja:ロンドン pt-BR:Londres ru:Лондон]] continent:map[code:EU geoname_id:6255148 names:map[de:Europa en:Europe es:Europa fr:Europe ja:ヨーロッパ pt-BR:Europa ru:Европа zh-CN:欧洲]] country:map[geoname_id:2635167 iso_code:GB names:map[de:Vereinigtes Königreich en:United Kingdom es:Reino Unido fr:Royaume-Uni ja:イギリス pt-BR:Reino Unido ru:Великобритания zh-CN:英国]] location:map[accuracy_radius:10 latitude:51.5142 longitude:-0.0931 time_zone:Europe/London] registered_country:map[geoname_id:6252001 iso_code:US names:map[de:USA en:United States es:Estados Unidos fr:États-Unis ja:アメリカ合衆国 pt-BR:Estados Unidos ru:США zh-CN:美国]] subdivisions:[map[geoname_id:6269131 iso_code:ENG names:map[en:England es:Inglaterra fr:Angleterre pt-BR:Inglaterra]]]] } // This example demonstrates how to iterate over all networks in the // database. func ExampleReader_Networks() { db, err := maxminddb.Open("test-data/test-data/GeoIP2-Connection-Type-Test.mmdb") if err != nil { log.Fatal(err) } defer db.Close() for result := range db.Networks() { record := struct { ConnectionType string `maxminddb:"connection_type"` }{} err := result.Decode(&record) if err != nil { log.Panic(err) } fmt.Printf("%s: %s\n", result.Prefix(), record.ConnectionType) } // Output: // 1.0.0.0/24: Cable/DSL // 1.0.1.0/24: Cellular // 1.0.2.0/23: Cable/DSL // 1.0.4.0/22: Cable/DSL // 1.0.8.0/21: Cable/DSL // 1.0.16.0/20: Cable/DSL // 1.0.32.0/19: Cable/DSL // 1.0.64.0/18: Cable/DSL // 1.0.128.0/17: Cable/DSL // 2.125.160.216/29: Cable/DSL // 67.43.156.0/24: Cellular // 80.214.0.0/20: Cellular // 96.1.0.0/16: Cable/DSL // 96.10.0.0/15: Cable/DSL // 96.69.0.0/16: Cable/DSL // 96.94.0.0/15: Cable/DSL // 108.96.0.0/11: Cellular // 149.101.100.0/28: Cellular // 175.16.199.0/24: Cable/DSL // 187.156.138.0/24: Cable/DSL // 201.243.200.0/24: Corporate // 207.179.48.0/20: Cellular // 216.160.83.56/29: Corporate // 2003::/24: Cable/DSL } // This example demonstrates how to validate a MaxMind DB file and access metadata. func ExampleReader_Verify() { db, err := maxminddb.Open("test-data/test-data/GeoIP2-City-Test.mmdb") if err != nil { log.Fatal(err) } defer db.Close() // Verify database integrity if err := db.Verify(); err != nil { log.Printf("Database validation failed: %v", err) return } // Access metadata information metadata := db.Metadata fmt.Printf("Database type: %s\n", metadata.DatabaseType) fmt.Printf("Build time: %s\n", metadata.BuildTime().UTC().Format("2006-01-02 15:04:05")) fmt.Printf("IP version: IPv%d\n", metadata.IPVersion) fmt.Printf("Languages: %v\n", metadata.Languages) if desc, ok := metadata.Description["en"]; ok { fmt.Printf("Description: %s\n", desc) } // Output: // Database type: GeoIP2-City // Build time: 2022-07-26 14:53:10 // IP version: IPv6 // Languages: [en zh] // Description: GeoIP2 City Test Database (fake GeoIP2 data, for example purposes only) } // This example demonstrates how to iterate over all networks in the // database which are contained within an arbitrary network. func ExampleReader_NetworksWithin() { db, err := maxminddb.Open("test-data/test-data/GeoIP2-Connection-Type-Test.mmdb") if err != nil { log.Fatal(err) } defer db.Close() prefix, err := netip.ParsePrefix("1.0.0.0/8") if err != nil { log.Panic(err) } for result := range db.NetworksWithin(prefix) { record := struct { ConnectionType string `maxminddb:"connection_type"` }{} err := result.Decode(&record) if err != nil { log.Panic(err) } fmt.Printf("%s: %s\n", result.Prefix(), record.ConnectionType) } // Output: // 1.0.0.0/24: Cable/DSL // 1.0.1.0/24: Cellular // 1.0.2.0/23: Cable/DSL // 1.0.4.0/22: Cable/DSL // 1.0.8.0/21: Cable/DSL // 1.0.16.0/20: Cable/DSL // 1.0.32.0/19: Cable/DSL // 1.0.64.0/18: Cable/DSL // 1.0.128.0/17: Cable/DSL } // This example demonstrates how to use SkipEmptyValues to iterate only over // networks that have actual data, skipping those with empty maps or arrays. func ExampleSkipEmptyValues() { db, err := maxminddb.Open("test-data/test-data/GeoIP2-Anonymous-IP-Test.mmdb") if err != nil { log.Fatal(err) } defer db.Close() // Without SkipEmptyValues, you get all networks including empty ones fmt.Println("All networks:") count := 0 for result := range db.Networks() { if result.Err() != nil { log.Panic(result.Err()) } count++ if count > 10 { fmt.Printf("... (%d more networks, many with empty data)\n", 529-count) break } var record map[string]any err := result.Decode(&record) if err != nil { log.Panic(err) } if len(record) == 0 { fmt.Printf("%s: (empty)\n", result.Prefix()) } else { fmt.Printf("%s: %v\n", result.Prefix(), record) } } fmt.Println("\nOnly networks with data:") // With SkipEmptyValues, you only get networks with actual data for result := range db.Networks(maxminddb.SkipEmptyValues()) { if result.Err() != nil { log.Panic(result.Err()) } var record map[string]any err := result.Decode(&record) if err != nil { log.Panic(result.Err()) } fmt.Printf("%s: %v\n", result.Prefix(), record) } // Output: // All networks: // 1.0.0.0/15: (empty) // 1.2.0.0/16: map[is_anonymous:true is_anonymous_vpn:true] // 1.3.0.0/16: (empty) // 1.4.0.0/14: (empty) // 1.8.0.0/13: (empty) // 1.16.0.0/12: (empty) // 1.32.0.0/11: (empty) // 1.64.0.0/11: (empty) // 1.96.0.0/12: (empty) // 1.112.0.0/13: (empty) // ... (518 more networks, many with empty data) // // Only networks with data: // 1.2.0.0/16: map[is_anonymous:true is_anonymous_vpn:true] // 1.124.213.1/32: map[is_anonymous:true is_anonymous_vpn:true is_tor_exit_node:true] // 65.0.0.0/13: map[is_anonymous:true is_tor_exit_node:true] // 71.160.223.0/24: map[is_anonymous:true is_hosting_provider:true] // 81.2.69.0/24: map[is_anonymous:true is_anonymous_vpn:true is_hosting_provider:true is_public_proxy:true is_residential_proxy:true is_tor_exit_node:true] // 186.30.236.0/24: map[is_anonymous:true is_public_proxy:true] // abcd:1000::/112: map[is_anonymous:true is_public_proxy:true] } // CustomCity represents a simplified city record with custom unmarshaling. // This demonstrates the Unmarshaler interface for custom decoding. type CustomCity struct { Names map[string]string GeoNameID uint } // UnmarshalMaxMindDB implements the mmdbdata.Unmarshaler interface. // This provides custom decoding logic, similar to how json.Unmarshaler works // with encoding/json, allowing fine-grained control over data processing. func (c *CustomCity) UnmarshalMaxMindDB(d *mmdbdata.Decoder) error { mapIter, _, err := d.ReadMap() if err != nil { return err } for key, err := range mapIter { if err != nil { return err } switch string(key) { case "city": // Decode nested city structure cityMapIter, _, err := d.ReadMap() if err != nil { return err } for cityKey, cityErr := range cityMapIter { if cityErr != nil { return cityErr } switch string(cityKey) { case "names": // Decode nested map[string]string for localized names names := make(map[string]string) nameMapIter, _, err := d.ReadMap() if err != nil { return err } for nameKey, nameErr := range nameMapIter { if nameErr != nil { return nameErr } value, valueErr := d.ReadString() if valueErr != nil { return valueErr } names[string(nameKey)] = value } c.Names = names case "geoname_id": geoID, err := d.ReadUint32() if err != nil { return err } c.GeoNameID = uint(geoID) default: if err := d.SkipValue(); err != nil { return err } } } default: // Skip unknown fields to ensure forward compatibility if err := d.SkipValue(); err != nil { return err } } } return nil } // This example demonstrates how to use the Unmarshaler interface for custom decoding. // Types implementing Unmarshaler automatically use custom decoding logic instead of // reflection, similar to how json.Unmarshaler works with encoding/json. func ExampleUnmarshaler() { db, err := maxminddb.Open("test-data/test-data/GeoIP2-City-Test.mmdb") if err != nil { log.Fatal(err) } defer db.Close() addr := netip.MustParseAddr("81.2.69.142") // CustomCity implements Unmarshaler, so it will automatically use // the custom UnmarshalMaxMindDB method instead of reflection var city CustomCity err = db.Lookup(addr).Decode(&city) if err != nil { log.Panic(err) } fmt.Printf("City ID: %d\n", city.GeoNameID) fmt.Printf("English name: %s\n", city.Names["en"]) fmt.Printf("German name: %s\n", city.Names["de"]) // Output: // City ID: 2643743 // English name: London // German name: London } golang-github-oschwald-maxminddb-golang-v2-2.0.0/fuzz_test.go000066400000000000000000000237101507532544400241750ustar00rootroot00000000000000package maxminddb import ( "bytes" "encoding/hex" "net/netip" "os" "path/filepath" "strconv" "testing" "github.com/oschwald/maxminddb-golang/v2/internal/decoder" ) // FuzzDatabase tests MMDB file parsing and IP address lookups. // This targets file format parsing, database initialization, and lookup operations. func FuzzDatabase(f *testing.F) { // Add all test MMDB files as seeds for _, filename := range getAllTestMMDBFiles() { if seedData, err := os.ReadFile(testFile(filename)); err == nil { f.Add(seedData) } } // Add malformed data patterns f.Add([]byte("not an mmdb file")) f.Add([]byte{0x00, 0x01, 0x02, 0x03}) f.Add(bytes.Repeat([]byte{0xFF}, 1024)) f.Add([]byte{}) f.Fuzz(func(_ *testing.T, data []byte) { reader, err := OpenBytes(data) if err != nil { return } defer func() { _ = reader.Close() }() // Test IP lookup and data decoding result := reader.Lookup(netip.MustParseAddr("1.1.1.1")) if result.Err() == nil { var mapResult map[string]any _ = result.Decode(&mapResult) if mapResult != nil { var output any _ = result.DecodePath(&output, "country", "iso_code") } } }) } // FuzzLookup tests IP address lookups without decoding results. // This isolates the tree traversal and lookup logic from data decoding. func FuzzLookup(f *testing.F) { // Add test MMDB files as seeds to fuzz the databases for _, filename := range getAllTestMMDBFiles() { if seedData, err := os.ReadFile(testFile(filename)); err == nil { f.Add(seedData) } } // Add malformed database patterns f.Add([]byte("not an mmdb file")) f.Add([]byte{0x00, 0x01, 0x02, 0x03}) f.Add(bytes.Repeat([]byte{0xFF}, 512)) f.Add([]byte{}) // Fixed test IP addresses to use for lookups testIPs := []netip.Addr{ netip.MustParseAddr("1.1.1.1"), netip.MustParseAddr("216.160.83.56"), // Known test IP with data netip.MustParseAddr("2.125.160.216"), // Another known test IP netip.MustParseAddr("::1"), // IPv6 netip.MustParseAddr("2001:218::"), // IPv6 with data } f.Fuzz(func(_ *testing.T, data []byte) { reader, err := OpenBytes(data) if err != nil { return } defer func() { _ = reader.Close() }() if reader.Metadata.DatabaseType == "" { return } // Test lookups with fixed IPs - focus on tree traversal logic for _, addr := range testIPs { result := reader.Lookup(addr) // Check that we get a valid result (error or not) // Don't decode the data, just verify the lookup completed _ = result.Err() // Also test that we can get basic result properties without decoding _ = result.Found() } }) } // FuzzDecodePath tests path-based decoding with fuzzed path segments. // This targets edge cases in path traversal logic. func FuzzDecodePath(f *testing.F) { // Use a complex test database with nested structures testDB := testFile("GeoIP2-City-Test.mmdb") reader, err := Open(testDB) if err != nil { f.Skip("Could not open test database") return } defer func() { _ = reader.Close() }() // Use a known IP that has complex data result := reader.Lookup(netip.MustParseAddr("2.125.160.216")) if result.Err() != nil { f.Skip("Could not perform lookup") return } // Add seed paths based on known data structure seedPaths := [][]string{ {"country", "iso_code"}, {"city", "names", "en"}, {"location", "latitude"}, {"location", "longitude"}, {"postal", "code"}, {"subdivisions", "0", "iso_code"}, {"continent", "code"}, {"registered_country", "iso_code"}, {"country", "names", "en"}, {"city", "geoname_id"}, {"subdivisions", "0", "names", "en"}, {"traits", "is_anonymous_proxy"}, {"location", "accuracy_radius"}, {"location", "metro_code"}, {"location", "time_zone"}, } for _, path := range seedPaths { // Encode path as bytes with null separators pathBytes := make([]byte, 0) for i, segment := range path { if i > 0 { pathBytes = append(pathBytes, 0) // null separator } pathBytes = append(pathBytes, []byte(segment)...) } f.Add(pathBytes) } // Add some edge case seeds f.Add([]byte("")) // empty path f.Add([]byte("nonexistent")) // single segment f.Add(bytes.Repeat([]byte("a"), 1000)) // very long segment f.Add([]byte("key\x00with\x00nulls")) // embedded nulls f.Add([]byte("123\x00456\x00789")) // numeric-looking paths f.Add([]byte("utf8\x00spëçîål")) // unicode characters f.Fuzz(func(_ *testing.T, pathData []byte) { // Skip completely empty data if len(pathData) == 0 { return } // Parse path data into segments using null byte separators segments := bytes.Split(pathData, []byte{0}) if len(segments) == 0 { return } // Convert byte segments to path elements var path []any for _, segment := range segments { // Skip empty segments if len(segment) == 0 { continue } segmentStr := string(segment) // Try to convert numeric strings to integers for array indexing if num, isInt := parseSimpleInt(segmentStr); isInt { path = append(path, num) } else { path = append(path, segmentStr) } } // Skip if we ended up with no path elements if len(path) == 0 { return } // Try to decode with the fuzzed path var output any _ = result.DecodePath(&output, path...) // Also test with different output types to exercise different decoding paths var stringOutput string _ = result.DecodePath(&stringOutput, path...) var intOutput int _ = result.DecodePath(&intOutput, path...) var mapOutput map[string]any _ = result.DecodePath(&mapOutput, path...) var sliceOutput []any _ = result.DecodePath(&sliceOutput, path...) }) } // FuzzNetworks tests the Networks() iterator with malformed databases. // This focuses specifically on tree traversal and iteration logic. func FuzzNetworks(f *testing.F) { // Add test MMDB files as seeds for _, filename := range getAllTestMMDBFiles() { if seedData, err := os.ReadFile(testFile(filename)); err == nil { f.Add(seedData) } } // Add malformed data patterns f.Add([]byte("not an mmdb file")) f.Add([]byte{0x00, 0x01, 0x02, 0x03}) f.Add(bytes.Repeat([]byte{0xFF}, 512)) f.Fuzz(func(_ *testing.T, data []byte) { reader, err := OpenBytes(data) if err != nil { return } defer func() { _ = reader.Close() }() if reader.Metadata.DatabaseType == "" { return } // Test Networks() iteration with conservative limits count := 0 for result := range reader.Networks() { if result.Err() != nil || count >= 5 { break } count++ var output any _ = result.Decode(&output) } }) } // FuzzDecode tests the ReflectionDecoder.Decode method with fuzzed data. // This targets data section parsing and reflection-based decoding logic. func FuzzDecode(f *testing.F) { // Add raw test data file as seed if rawData, err := os.ReadFile(testFile("maps-with-pointers.raw")); err == nil { f.Add(rawData) } // Add validated test data from decoder tests testHexStrings := []string{ // Float64 values "680000000000000000", // 0.0 "683FE0000000000000", // 0.5 "68400921FB54442EEA", // 3.14159265359 "68405EC00000000000", // 123.0 "6841D000000007F8F4", // 1073741824.12457 "68BFE0000000000000", // -0.5 "68C00921FB54442EEA", // -3.14159265359 "68C1D000000007F8F4", // -1073741824.12457 // Float32 values "040800000000", // 0.0 "04083F800000", // 1.0 "04083F8CCCCD", // 1.1 "04084048F5C3", // 3.14 "0408461C3FF6", // 9999.99 "0408BF800000", // -1.0 "0408BF8CCCCD", // -1.1 "0408C048F5C3", // -3.14 "0408C61C3FF6", // -9999.99 // Integer values "0401ffffffff", // -1 "0401ffffff01", // -255 "020101f4", // 500 // Boolean values "0007", // false "0107", // true // Maps "E0", // Empty map "e142656e43466f6f", // {"en": "Foo"} "e242656e43466f6f427a6843e4baba", // {"en": "Foo", "zh": "人"} "e1446e616d65e242656e43466f6f427a6843e4baba", // Nested map "e1496c616e677561676573020442656e427a68", // Map with array value // Arrays "020442656e427a68", // ["en", "zh"] // Strings "43466f6f", // "Foo" "42656e", // "en" "427a68", // "zh" } for _, hexStr := range testHexStrings { if data, err := hex.DecodeString(hexStr); err == nil { f.Add(data) } } // Add malformed data patterns f.Add([]byte{0xFF, 0xFF, 0xFF, 0xFF}) f.Add([]byte{0x42, 0x48, 0x65, 0x6C, 0x6C, 0x6F}) f.Add([]byte{0x60, 0x41, 0x61, 0x41, 0x62}) f.Add([]byte{0xE1, 0x41, 0x61, 0x41, 0x62}) f.Fuzz(func(_ *testing.T, data []byte) { if len(data) == 0 { return } reflectionDecoder := decoder.New(data) // Test decoding into various types outputs := []any{ new(map[string]any), new(string), new(int), new(uint32), new(float64), new(bool), new([]any), new([]string), new(map[string]string), new([]map[string]any), new(any), } for _, output := range outputs { _ = reflectionDecoder.Decode(0, output) } // Test different offsets for offset := uint(1); offset < uint(len(data)) && offset < 10; offset++ { var mapOutput map[string]any _ = reflectionDecoder.Decode(offset, &mapOutput) } }) } // parseSimpleInt converts numeric strings to integers with bounds checking. // Returns the integer and true if valid, or 0 and false if not a simple integer. func parseSimpleInt(s string) (int, bool) { num, err := strconv.Atoi(s) if err != nil || num < -1000 || num > 1000 { return 0, false } return num, true } // getAllTestMMDBFiles returns smaller MMDB files from the test-data directory. // Large files are excluded to keep fuzzing fast and prevent timeouts. func getAllTestMMDBFiles() []string { testDataDir := filepath.Join("test-data", "test-data") entries, err := os.ReadDir(testDataDir) if err != nil { return nil } var mmdbFiles []string for _, entry := range entries { if !entry.IsDir() && filepath.Ext(entry.Name()) == ".mmdb" { // Check file size - skip very large files for fuzzing performance if info, err := entry.Info(); err == nil && info.Size() < 5000 { // 5KB limit mmdbFiles = append(mmdbFiles, entry.Name()) } } } return mmdbFiles } golang-github-oschwald-maxminddb-golang-v2-2.0.0/go.mod000066400000000000000000000004311507532544400227120ustar00rootroot00000000000000module github.com/oschwald/maxminddb-golang/v2 go 1.24.0 require ( github.com/stretchr/testify v1.11.1 golang.org/x/sys v0.37.0 ) require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) golang-github-oschwald-maxminddb-golang-v2-2.0.0/go.sum000066400000000000000000000020141507532544400227360ustar00rootroot00000000000000github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ= golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/000077500000000000000000000000001507532544400234225ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/000077500000000000000000000000001507532544400250275ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/data_decoder.go000066400000000000000000000313311507532544400277550ustar00rootroot00000000000000package decoder import ( "encoding/binary" "fmt" "math" "github.com/oschwald/maxminddb-golang/v2/internal/mmdberrors" ) // Kind constants for the different MMDB data kinds. type Kind int // MMDB data kind constants. const ( // KindExtended indicates an extended kind. KindExtended Kind = iota // KindPointer is a pointer to another location in the data section. KindPointer // KindString is a UTF-8 string. KindString // KindFloat64 is a 64-bit floating point number. KindFloat64 // KindBytes is a byte slice. KindBytes // KindUint16 is a 16-bit unsigned integer. KindUint16 // KindUint32 is a 32-bit unsigned integer. KindUint32 // KindMap is a map from strings to other data types. KindMap // KindInt32 is a 32-bit signed integer. KindInt32 // KindUint64 is a 64-bit unsigned integer. KindUint64 // KindUint128 is a 128-bit unsigned integer. KindUint128 // KindSlice is an array of values. KindSlice // KindContainer is a data cache container. KindContainer // KindEndMarker marks the end of the data section. KindEndMarker // KindBool is a boolean value. KindBool // KindFloat32 is a 32-bit floating point number. KindFloat32 ) // String returns a human-readable name for the Kind. func (k Kind) String() string { switch k { case KindExtended: return "Extended" case KindPointer: return "Pointer" case KindString: return "String" case KindFloat64: return "Float64" case KindBytes: return "Bytes" case KindUint16: return "Uint16" case KindUint32: return "Uint32" case KindMap: return "Map" case KindInt32: return "Int32" case KindUint64: return "Uint64" case KindUint128: return "Uint128" case KindSlice: return "Slice" case KindContainer: return "Container" case KindEndMarker: return "EndMarker" case KindBool: return "Bool" case KindFloat32: return "Float32" default: return fmt.Sprintf("Unknown(%d)", int(k)) } } // IsContainer returns true if the Kind represents a container type (Map or Slice). func (k Kind) IsContainer() bool { return k == KindMap || k == KindSlice } // IsScalar returns true if the Kind represents a scalar value type. func (k Kind) IsScalar() bool { switch k { case KindString, KindFloat64, KindBytes, KindUint16, KindUint32, KindInt32, KindUint64, KindUint128, KindBool, KindFloat32: return true default: return false } } // DataDecoder is a decoder for the MMDB data section. // This is exported so mmdbdata package can use it, but still internal. type DataDecoder struct { stringCache *stringCache buffer []byte } const ( // This is the value used in libmaxminddb. maximumDataStructureDepth = 512 ) // NewDataDecoder creates a [DataDecoder]. func NewDataDecoder(buffer []byte) DataDecoder { return DataDecoder{ buffer: buffer, stringCache: newStringCache(), } } // getBuffer returns the underlying buffer for direct access. func (d *DataDecoder) getBuffer() []byte { return d.buffer } // decodeCtrlData decodes the control byte and data info at the given offset. func (d *DataDecoder) decodeCtrlData(offset uint) (Kind, uint, uint, error) { newOffset := offset + 1 if offset >= uint(len(d.buffer)) { return 0, 0, 0, mmdberrors.NewOffsetError() } ctrlByte := d.buffer[offset] kindNum := Kind(ctrlByte >> 5) if kindNum == KindExtended { if newOffset >= uint(len(d.buffer)) { return 0, 0, 0, mmdberrors.NewOffsetError() } kindNum = Kind(d.buffer[newOffset] + 7) newOffset++ } var size uint size, newOffset, err := d.sizeFromCtrlByte(ctrlByte, newOffset, kindNum) return kindNum, size, newOffset, err } // decodeBytes decodes a byte slice from the given offset with the given size. func (d *DataDecoder) decodeBytes(size, offset uint) ([]byte, uint, error) { if offset+size > uint(len(d.buffer)) { return nil, 0, mmdberrors.NewOffsetError() } newOffset := offset + size bytes := make([]byte, size) copy(bytes, d.buffer[offset:newOffset]) return bytes, newOffset, nil } // DecodeFloat64 decodes a 64-bit float from the given offset. func (d *DataDecoder) decodeFloat64(size, offset uint) (float64, uint, error) { if size != 8 { return 0, 0, mmdberrors.NewInvalidDatabaseError( "the MaxMind DB file's data section contains bad data (float 64 size of %v)", size, ) } if offset+size > uint(len(d.buffer)) { return 0, 0, mmdberrors.NewOffsetError() } newOffset := offset + size bits := binary.BigEndian.Uint64(d.buffer[offset:newOffset]) return math.Float64frombits(bits), newOffset, nil } // DecodeFloat32 decodes a 32-bit float from the given offset. func (d *DataDecoder) decodeFloat32(size, offset uint) (float32, uint, error) { if size != 4 { return 0, 0, mmdberrors.NewInvalidDatabaseError( "the MaxMind DB file's data section contains bad data (float32 size of %v)", size, ) } if offset+size > uint(len(d.buffer)) { return 0, 0, mmdberrors.NewOffsetError() } newOffset := offset + size bits := binary.BigEndian.Uint32(d.buffer[offset:newOffset]) return math.Float32frombits(bits), newOffset, nil } // DecodeInt32 decodes a 32-bit signed integer from the given offset. func (d *DataDecoder) decodeInt32(size, offset uint) (int32, uint, error) { if size > 4 { return 0, 0, mmdberrors.NewInvalidDatabaseError( "the MaxMind DB file's data section contains bad data (int32 size of %v)", size, ) } if offset+size > uint(len(d.buffer)) { return 0, 0, mmdberrors.NewOffsetError() } newOffset := offset + size var val int32 for _, b := range d.buffer[offset:newOffset] { val = (val << 8) | int32(b) } return val, newOffset, nil } // DecodePointer decodes a pointer from the given offset. func (d *DataDecoder) decodePointer( size uint, offset uint, ) (uint, uint, error) { pointerSize := ((size >> 3) & 0x3) + 1 newOffset := offset + pointerSize if newOffset > uint(len(d.buffer)) { return 0, 0, mmdberrors.NewOffsetError() } pointerBytes := d.buffer[offset:newOffset] var prefix uint if pointerSize == 4 { prefix = 0 } else { prefix = size & 0x7 } unpacked := uintFromBytes(prefix, pointerBytes) var pointerValueOffset uint switch pointerSize { case 1, 4: pointerValueOffset = 0 case 2: pointerValueOffset = 2048 case 3: pointerValueOffset = 526336 default: return 0, 0, mmdberrors.NewInvalidDatabaseError("invalid pointer size: %d", pointerSize) } pointer := unpacked + pointerValueOffset return pointer, newOffset, nil } // DecodeBool decodes a boolean from the given offset. func (*DataDecoder) decodeBool(size, offset uint) (bool, uint, error) { if size > 1 { return false, 0, mmdberrors.NewInvalidDatabaseError( "the MaxMind DB file's data section contains bad data (bool size of %v)", size, ) } value, newOffset := decodeBool(size, offset) return value, newOffset, nil } // DecodeString decodes a string from the given offset. func (d *DataDecoder) decodeString(size, offset uint) (string, uint, error) { if offset+size > uint(len(d.buffer)) { return "", 0, mmdberrors.NewOffsetError() } newOffset := offset + size value := d.stringCache.internAt(offset, size, d.buffer) return value, newOffset, nil } // DecodeUint16 decodes a 16-bit unsigned integer from the given offset. func (d *DataDecoder) decodeUint16(size, offset uint) (uint16, uint, error) { if size > 2 { return 0, 0, mmdberrors.NewInvalidDatabaseError( "the MaxMind DB file's data section contains bad data (uint16 size of %v)", size, ) } if offset+size > uint(len(d.buffer)) { return 0, 0, mmdberrors.NewOffsetError() } newOffset := offset + size bytes := d.buffer[offset:newOffset] var val uint16 for _, b := range bytes { val = (val << 8) | uint16(b) } return val, newOffset, nil } // DecodeUint32 decodes a 32-bit unsigned integer from the given offset. func (d *DataDecoder) decodeUint32(size, offset uint) (uint32, uint, error) { if size > 4 { return 0, 0, mmdberrors.NewInvalidDatabaseError( "the MaxMind DB file's data section contains bad data (uint32 size of %v)", size, ) } if offset+size > uint(len(d.buffer)) { return 0, 0, mmdberrors.NewOffsetError() } newOffset := offset + size bytes := d.buffer[offset:newOffset] var val uint32 for _, b := range bytes { val = (val << 8) | uint32(b) } return val, newOffset, nil } // DecodeUint64 decodes a 64-bit unsigned integer from the given offset. func (d *DataDecoder) decodeUint64(size, offset uint) (uint64, uint, error) { if size > 8 { return 0, 0, mmdberrors.NewInvalidDatabaseError( "the MaxMind DB file's data section contains bad data (uint64 size of %v)", size, ) } if offset+size > uint(len(d.buffer)) { return 0, 0, mmdberrors.NewOffsetError() } newOffset := offset + size bytes := d.buffer[offset:newOffset] var val uint64 for _, b := range bytes { val = (val << 8) | uint64(b) } return val, newOffset, nil } // DecodeUint128 decodes a 128-bit unsigned integer from the given offset. // Returns the value as high and low 64-bit unsigned integers. func (d *DataDecoder) decodeUint128(size, offset uint) (hi, lo uint64, newOffset uint, err error) { if size > 16 { return 0, 0, 0, mmdberrors.NewInvalidDatabaseError( "the MaxMind DB file's data section contains bad data (uint128 size of %v)", size, ) } if offset+size > uint(len(d.buffer)) { return 0, 0, 0, mmdberrors.NewOffsetError() } newOffset = offset + size // Process bytes from most significant to least significant for _, b := range d.buffer[offset:newOffset] { var carry byte lo, carry = append64(lo, b) hi, _ = append64(hi, carry) } return hi, lo, newOffset, nil } func append64(val uint64, b byte) (uint64, byte) { return (val << 8) | uint64(b), byte(val >> 56) } // DecodeKey decodes a map key into []byte slice. We use a []byte so that we // can take advantage of https://github.com/golang/go/issues/3512 to avoid // copying the bytes when decoding a struct. Previously, we achieved this by // using unsafe. func (d *DataDecoder) decodeKey(offset uint) ([]byte, uint, error) { kindNum, size, dataOffset, err := d.decodeCtrlData(offset) if err != nil { return nil, 0, err } // Follow pointer if present (but only once, per spec) nextOffset := dataOffset + size // default return offset if kindNum == KindPointer { pointer, newNextOffset, err := d.decodePointer(size, dataOffset) if err != nil { return nil, 0, err } nextOffset = newNextOffset // Decode the pointed-to data kindNum, size, dataOffset, err = d.decodeCtrlData(pointer) if err != nil { return nil, 0, err } // Check for pointer-to-pointer, which is invalid per spec if kindNum == KindPointer { return nil, 0, mmdberrors.NewInvalidDatabaseError( "invalid pointer to pointer at offset %d", pointer, ) } } if kindNum != KindString { return nil, 0, mmdberrors.NewInvalidDatabaseError( "unexpected type when decoding string: %v", kindNum, ) } newOffset := dataOffset + size if newOffset > uint(len(d.buffer)) { return nil, 0, mmdberrors.NewOffsetError() } return d.buffer[dataOffset:newOffset], nextOffset, nil } // NextValueOffset skips ahead to the next value without decoding // the one at the offset passed in. The size bits have different meanings for // different data types. func (d *DataDecoder) nextValueOffset(offset, numberToSkip uint) (uint, error) { for numberToSkip > 0 { kindNum, size, newOffset, err := d.decodeCtrlData(offset) if err != nil { return 0, err } switch kindNum { case KindPointer: // A pointer value is represented by its pointer token only. // To skip it, just move past the pointer bytes; do NOT follow // the pointer target here. _, ptrEndOffset, err2 := d.decodePointer(size, newOffset) if err2 != nil { return 0, err2 } newOffset = ptrEndOffset case KindMap: numberToSkip += 2 * size case KindSlice: numberToSkip += size case KindBool: // size encodes the boolean; nothing else to skip default: newOffset += size } offset = newOffset numberToSkip-- } return offset, nil } func (d *DataDecoder) sizeFromCtrlByte( ctrlByte byte, offset uint, kindNum Kind, ) (uint, uint, error) { size := uint(ctrlByte & 0x1f) if kindNum == KindExtended { return size, offset, nil } var bytesToRead uint if size < 29 { return size, offset, nil } bytesToRead = size - 28 newOffset := offset + bytesToRead if newOffset > uint(len(d.buffer)) { return 0, 0, mmdberrors.NewOffsetError() } if size == 29 { return 29 + uint(d.buffer[offset]), offset + 1, nil } sizeBytes := d.buffer[offset:newOffset] switch { case size == 30: size = 285 + uintFromBytes(0, sizeBytes) case size > 30: size = uintFromBytes(0, sizeBytes) + 65821 default: // size < 30, no modification needed } return size, newOffset, nil } func decodeBool(size, offset uint) (bool, uint) { return size != 0, offset } func uintFromBytes(prefix uint, uintBytes []byte) uint { val := prefix for _, b := range uintBytes { val = (val << 8) | uint(b) } return val } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/decoder.go000066400000000000000000000257411507532544400267740ustar00rootroot00000000000000// Package decoder provides low-level decoding utilities for MaxMind DB data. package decoder import ( "fmt" "iter" "github.com/oschwald/maxminddb-golang/v2/internal/mmdberrors" ) // Decoder allows decoding of a single value stored at a specific offset // in the database. type Decoder struct { d DataDecoder offset uint nextOffset uint opts decoderOptions hasNextOffset bool } type decoderOptions struct { // Reserved for future options } // DecoderOption configures a Decoder. // //nolint:revive // name follows existing library pattern (ReaderOption, NetworksOption) type DecoderOption func(*decoderOptions) // NewDecoder creates a new Decoder with the given DataDecoder, offset, and options. func NewDecoder(d DataDecoder, offset uint, options ...DecoderOption) *Decoder { opts := decoderOptions{} for _, option := range options { option(&opts) } decoder := &Decoder{ d: d, offset: offset, opts: opts, } return decoder } // ReadBool reads the value pointed by the decoder as a bool. // // Returns an error if the database is malformed or if the pointed value is not a bool. func (d *Decoder) ReadBool() (bool, error) { size, offset, err := d.decodeCtrlDataAndFollow(KindBool) if err != nil { return false, d.wrapError(err) } value, newOffset, err := d.d.decodeBool(size, offset) if err != nil { return false, d.wrapError(err) } d.setNextOffset(newOffset) return value, nil } // ReadString reads the value pointed by the decoder as a string. // // Returns an error if the database is malformed or if the pointed value is not a string. func (d *Decoder) ReadString() (string, error) { size, offset, err := d.decodeCtrlDataAndFollow(KindString) if err != nil { return "", d.wrapError(err) } value, newOffset, err := d.d.decodeString(size, offset) if err != nil { return "", d.wrapError(err) } d.setNextOffset(newOffset) return value, nil } // ReadBytes reads the value pointed by the decoder as bytes. // // Returns an error if the database is malformed or if the pointed value is not bytes. func (d *Decoder) ReadBytes() ([]byte, error) { val, err := d.readBytes(KindBytes) if err != nil { return nil, d.wrapError(err) } return val, nil } // ReadFloat32 reads the value pointed by the decoder as a float32. // // Returns an error if the database is malformed or if the pointed value is not a float. func (d *Decoder) ReadFloat32() (float32, error) { size, offset, err := d.decodeCtrlDataAndFollow(KindFloat32) if err != nil { return 0, d.wrapError(err) } value, nextOffset, err := d.d.decodeFloat32(size, offset) if err != nil { return 0, d.wrapError(err) } d.setNextOffset(nextOffset) return value, nil } // ReadFloat64 reads the value pointed by the decoder as a float64. // // Returns an error if the database is malformed or if the pointed value is not a double. func (d *Decoder) ReadFloat64() (float64, error) { size, offset, err := d.decodeCtrlDataAndFollow(KindFloat64) if err != nil { return 0, d.wrapError(err) } value, nextOffset, err := d.d.decodeFloat64(size, offset) if err != nil { return 0, d.wrapError(err) } d.setNextOffset(nextOffset) return value, nil } // ReadInt32 reads the value pointed by the decoder as a int32. // // Returns an error if the database is malformed or if the pointed value is not an int32. func (d *Decoder) ReadInt32() (int32, error) { size, offset, err := d.decodeCtrlDataAndFollow(KindInt32) if err != nil { return 0, d.wrapError(err) } value, nextOffset, err := d.d.decodeInt32(size, offset) if err != nil { return 0, d.wrapError(err) } d.setNextOffset(nextOffset) return value, nil } // ReadUint16 reads the value pointed by the decoder as a uint16. // // Returns an error if the database is malformed or if the pointed value is not an uint16. func (d *Decoder) ReadUint16() (uint16, error) { size, offset, err := d.decodeCtrlDataAndFollow(KindUint16) if err != nil { return 0, d.wrapError(err) } value, nextOffset, err := d.d.decodeUint16(size, offset) if err != nil { return 0, d.wrapError(err) } d.setNextOffset(nextOffset) return value, nil } // ReadUint32 reads the value pointed by the decoder as a uint32. // // Returns an error if the database is malformed or if the pointed value is not an uint32. func (d *Decoder) ReadUint32() (uint32, error) { size, offset, err := d.decodeCtrlDataAndFollow(KindUint32) if err != nil { return 0, d.wrapError(err) } value, nextOffset, err := d.d.decodeUint32(size, offset) if err != nil { return 0, d.wrapError(err) } d.setNextOffset(nextOffset) return value, nil } // ReadUint64 reads the value pointed by the decoder as a uint64. // // Returns an error if the database is malformed or if the pointed value is not an uint64. func (d *Decoder) ReadUint64() (uint64, error) { size, offset, err := d.decodeCtrlDataAndFollow(KindUint64) if err != nil { return 0, d.wrapError(err) } value, nextOffset, err := d.d.decodeUint64(size, offset) if err != nil { return 0, d.wrapError(err) } d.setNextOffset(nextOffset) return value, nil } // ReadUint128 reads the value pointed by the decoder as a uint128. // // Returns an error if the database is malformed or if the pointed value is not an uint128. func (d *Decoder) ReadUint128() (hi, lo uint64, err error) { size, offset, err := d.decodeCtrlDataAndFollow(KindUint128) if err != nil { return 0, 0, d.wrapError(err) } hi, lo, nextOffset, err := d.d.decodeUint128(size, offset) if err != nil { return 0, 0, d.wrapError(err) } d.setNextOffset(nextOffset) return hi, lo, nil } // ReadMap returns an iterator to read the map along with the map size. The // size can be used to pre-allocate a map with the correct capacity for better // performance. The first value from the iterator is the key. Please note that // this byte slice is only valid during the iteration. This is done to avoid // an unnecessary allocation. You must make a copy of it if you are storing it // for later use. The second value is an error indicating that the database is // malformed or that the pointed value is not a map. func (d *Decoder) ReadMap() (iter.Seq2[[]byte, error], uint, error) { size, offset, err := d.decodeCtrlDataAndFollow(KindMap) if err != nil { return nil, 0, d.wrapError(err) } iterator := func(yield func([]byte, error) bool) { currentOffset := offset for range size { key, keyEndOffset, err := d.d.decodeKey(currentOffset) if err != nil { yield(nil, d.wrapErrorAtOffset(err, currentOffset)) return } // Position decoder to read value after yielding key d.reset(keyEndOffset) ok := yield(key, nil) if !ok { return } // Skip the value to get to next key-value pair valueEndOffset, err := d.d.nextValueOffset(keyEndOffset, 1) if err != nil { yield(nil, d.wrapError(err)) return } currentOffset = valueEndOffset } // Set the final offset after map iteration d.reset(currentOffset) } return iterator, size, nil } // ReadSlice returns an iterator over the values of the slice along with the // slice size. The size can be used to pre-allocate a slice with the correct // capacity for better performance. The iterator returns an error if the // database is malformed or if the pointed value is not a slice. func (d *Decoder) ReadSlice() (iter.Seq[error], uint, error) { size, offset, err := d.decodeCtrlDataAndFollow(KindSlice) if err != nil { return nil, 0, d.wrapError(err) } iterator := func(yield func(error) bool) { currentOffset := offset for i := range size { // Position decoder to read current element d.reset(currentOffset) ok := yield(nil) if !ok { // Skip the unvisited elements remaining := size - i - 1 if remaining > 0 { endOffset, err := d.d.nextValueOffset(currentOffset, remaining) if err == nil { d.reset(endOffset) } } return } // Advance to next element nextOffset, err := d.d.nextValueOffset(currentOffset, 1) if err != nil { yield(d.wrapError(err)) return } currentOffset = nextOffset } // Set final offset after slice iteration d.reset(currentOffset) } return iterator, size, nil } // SkipValue skips over the current value without decoding it. // This is useful in custom decoders when encountering unknown fields. // The decoder will be positioned after the skipped value. func (d *Decoder) SkipValue() error { // We can reuse the existing nextValueOffset logic by jumping to the next value nextOffset, err := d.d.nextValueOffset(d.offset, 1) if err != nil { return d.wrapError(err) } d.reset(nextOffset) return nil } // PeekKind returns the kind of the current value without consuming it. // This allows for look-ahead parsing similar to jsontext.Decoder.PeekKind(). func (d *Decoder) PeekKind() (Kind, error) { kindNum, _, _, err := d.d.decodeCtrlData(d.offset) if err != nil { return 0, d.wrapError(err) } // Follow pointers to get the actual kind if kindNum == KindPointer { // We need to follow the pointer to get the real kind dataOffset := d.offset for { var size uint kindNum, size, dataOffset, err = d.d.decodeCtrlData(dataOffset) if err != nil { return 0, d.wrapError(err) } if kindNum != KindPointer { break } dataOffset, _, err = d.d.decodePointer(size, dataOffset) if err != nil { return 0, d.wrapError(err) } } } return kindNum, nil } // Offset returns the current offset position in the database. // This can be used by custom unmarshalers for caching purposes. func (d *Decoder) Offset() uint { return d.offset } func (d *Decoder) reset(offset uint) { d.offset = offset d.hasNextOffset = false d.nextOffset = 0 } func (d *Decoder) setNextOffset(offset uint) { if !d.hasNextOffset { d.hasNextOffset = true d.nextOffset = offset } } func unexpectedKindErr(expectedKind, actualKind Kind) error { return fmt.Errorf("unexpected kind %d, expected %d", actualKind, expectedKind) } func (d *Decoder) decodeCtrlDataAndFollow(expectedKind Kind) (uint, uint, error) { dataOffset := d.offset for { var kindNum Kind var size uint var err error kindNum, size, dataOffset, err = d.d.decodeCtrlData(dataOffset) if err != nil { return 0, 0, err // Don't wrap here, let caller wrap } if kindNum == KindPointer { var nextOffset uint dataOffset, nextOffset, err = d.d.decodePointer(size, dataOffset) if err != nil { return 0, 0, err // Don't wrap here, let caller wrap } d.setNextOffset(nextOffset) continue } if kindNum != expectedKind { return 0, 0, unexpectedKindErr(expectedKind, kindNum) } return size, dataOffset, nil } } func (d *Decoder) readBytes(kind Kind) ([]byte, error) { size, offset, err := d.decodeCtrlDataAndFollow(kind) if err != nil { return nil, err // Return unwrapped - caller will wrap } if offset+size > uint(len(d.d.getBuffer())) { return nil, mmdberrors.NewInvalidDatabaseError( "the MaxMind DB file's data section contains bad data (offset+size %d exceeds buffer length %d)", offset+size, len(d.d.getBuffer()), ) } d.setNextOffset(offset + size) return d.d.getBuffer()[offset : offset+size], nil } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/decoder_test.go000066400000000000000000000425661507532544400300370ustar00rootroot00000000000000package decoder import ( "encoding/hex" "fmt" "math/big" "os" "strings" "testing" "github.com/stretchr/testify/require" ) // Helper function to create a Decoder for a given hex string. func newDecoderFromHex(t *testing.T, hexStr string) *Decoder { t.Helper() inputBytes, err := hex.DecodeString(hexStr) require.NoError(t, err, "Failed to decode hex string: %s", hexStr) dd := NewDataDecoder(inputBytes) // [cite: 11] return NewDecoder(dd, 0) // [cite: 26] } // Helper function to create reasonable test names from potentially long hex strings. func makeTestName(hexStr string) string { if len(hexStr) <= 20 { return hexStr } return hexStr[:16] + "..." + hexStr[len(hexStr)-4:] } func TestDecodeBool(t *testing.T) { tests := map[string]bool{ "0007": false, // [cite: 29] "0107": true, // [cite: 30] } for hexStr, expected := range tests { t.Run(hexStr, func(t *testing.T) { decoder := newDecoderFromHex(t, hexStr) result, err := decoder.ReadBool() // [cite: 30] require.NoError(t, err) require.Equal(t, expected, result) // Check if offset was advanced correctly (simple check) require.True(t, decoder.hasNextOffset || decoder.offset > 0, "Offset was not advanced") }) } } func TestDecodeDouble(t *testing.T) { tests := map[string]float64{ "680000000000000000": 0.0, "683FE0000000000000": 0.5, "68400921FB54442EEA": 3.14159265359, "68405EC00000000000": 123.0, "6841D000000007F8F4": 1073741824.12457, "68BFE0000000000000": -0.5, "68C00921FB54442EEA": -3.14159265359, "68C1D000000007F8F4": -1073741824.12457, } for hexStr, expected := range tests { t.Run(hexStr, func(t *testing.T) { decoder := newDecoderFromHex(t, hexStr) result, err := decoder.ReadFloat64() // [cite: 38] require.NoError(t, err) if expected == 0 { require.InDelta(t, expected, result, 0) } else { require.InEpsilon(t, expected, result, 1e-15) } require.True(t, decoder.hasNextOffset || decoder.offset > 0, "Offset was not advanced") }) } } func TestDecodeFloat(t *testing.T) { tests := map[string]float32{ "040800000000": float32(0.0), "04083F800000": float32(1.0), "04083F8CCCCD": float32(1.1), "04084048F5C3": float32(3.14), "0408461C3FF6": float32(9999.99), "0408BF800000": float32(-1.0), "0408BF8CCCCD": float32(-1.1), "0408C048F5C3": -float32(3.14), "0408C61C3FF6": float32(-9999.99), } for hexStr, expected := range tests { t.Run(hexStr, func(t *testing.T) { decoder := newDecoderFromHex(t, hexStr) result, err := decoder.ReadFloat32() // [cite: 36] require.NoError(t, err) if expected == 0 { require.InDelta(t, expected, result, 0) } else { require.InEpsilon(t, expected, result, 1e-6) } require.True(t, decoder.hasNextOffset || decoder.offset > 0, "Offset was not advanced") }) } } func TestDecodeInt32(t *testing.T) { tests := map[string]int32{ "0001": int32(0), // [cite: 39] "0401ffffffff": int32(-1), "0101ff": int32(255), "0401ffffff01": int32(-255), "020101f4": int32(500), "0401fffffe0c": int32(-500), "0201ffff": int32(65535), "0401ffff0001": int32(-65535), "0301ffffff": int32(16777215), "0401ff000001": int32(-16777215), "04017fffffff": int32(2147483647), // [cite: 86] "040180000001": int32(-2147483647), } for hexStr, expected := range tests { t.Run(hexStr, func(t *testing.T) { decoder := newDecoderFromHex(t, hexStr) result, err := decoder.ReadInt32() // [cite: 40] require.NoError(t, err) require.Equal(t, expected, result) require.True(t, decoder.hasNextOffset || decoder.offset > 0, "Offset was not advanced") }) } } func TestDecodeMap(t *testing.T) { tests := map[string]map[string]any{ "e0": {}, // [cite: 50] "e142656e43466f6f": {"en": "Foo"}, "e242656e43466f6f427a6843e4baba": {"en": "Foo", "zh": "人"}, // Nested map test needs separate handling or more complex validation logic // "e1446e616d65e242656e43466f6f427a6843e4baba": map[string]any{ // "name": map[string]any{"en": "Foo", "zh": "人"}, // }, // Map containing slice needs separate handling // "e1496c616e677561676573020442656e427a68": map[string]any{ // "languages": []any{"en", "zh"}, // }, } for hexStr, expected := range tests { t.Run(hexStr, func(t *testing.T) { decoder := newDecoderFromHex(t, hexStr) mapIter, size, err := decoder.ReadMap() // [cite: 53] require.NoError(t, err, "ReadMap failed") resultMap := make(map[string]any, size) // Pre-allocate with correct capacity // Iterate through the map [cite: 54] for keyBytes, err := range mapIter { // [cite: 50] require.NoError(t, err, "Iterator returned error for key") key := string(keyBytes) // [cite: 51] - Need to copy if stored // Now decode the value corresponding to the key // For simplicity, we'll read as string here. Needs adjustment for mixed types. value, err := decoder.ReadString() // [cite: 32] require.NoError(t, err, "Failed to decode value for key %s", key) resultMap[key] = value } // Final check on the accumulated map require.Equal(t, expected, resultMap) require.True(t, decoder.hasNextOffset || decoder.offset > 0, "Offset was not advanced") }) } } func TestDecodeSlice(t *testing.T) { tests := map[string][]any{ "0004": {}, // [cite: 55] "010443466f6f": {"Foo"}, "020443466f6f43e4baba": {"Foo", "人"}, } for hexStr, expected := range tests { t.Run(hexStr, func(t *testing.T) { decoder := newDecoderFromHex(t, hexStr) sliceIter, size, err := decoder.ReadSlice() // [cite: 56] require.NoError(t, err, "ReadSlice failed") results := make([]any, 0, size) // Pre-allocate with correct capacity // Iterate through the slice [cite: 57] for err := range sliceIter { require.NoError(t, err, "Iterator returned error") // Read the current element // For simplicity, reading as string. Needs adjustment for mixed types. elem, err := decoder.ReadString() // [cite: 32] require.NoError(t, err, "Failed to decode slice element") results = append(results, elem) } require.Equal(t, expected, results) require.True(t, decoder.hasNextOffset || decoder.offset > 0, "Offset was not advanced") }) } } func TestDecodeString(t *testing.T) { for hexStr, expected := range testStrings { t.Run(makeTestName(hexStr), func(t *testing.T) { decoder := newDecoderFromHex(t, hexStr) result, err := decoder.ReadString() // [cite: 32] require.NoError(t, err) require.Equal(t, expected, result) require.True(t, decoder.hasNextOffset || decoder.offset > 0, "Offset was not advanced") }) } } func TestDecodeByte(t *testing.T) { byteTests := make(map[string][]byte) for key, val := range testStrings { oldCtrl, err := hex.DecodeString(key[0:2]) require.NoError(t, err) // Adjust control byte for Bytes type (assuming String=0x2, Bytes=0x5) // This mapping might need verification based on the actual type codes. // Assuming TypeString=2 (010.....) -> TypeBytes=4 (100.....) // Need to check the actual constants [cite: 4, 5] newCtrlByte := (oldCtrl[0] & 0x1f) | (byte(KindBytes) << 5) newCtrl := []byte{newCtrlByte} newKey := hex.EncodeToString(newCtrl) + key[2:] byteTests[newKey] = []byte(val.(string)) } for hexStr, expected := range byteTests { t.Run(makeTestName(hexStr), func(t *testing.T) { decoder := newDecoderFromHex(t, hexStr) result, err := decoder.ReadBytes() // [cite: 34] require.NoError(t, err) require.Equal(t, expected, result) require.True(t, decoder.hasNextOffset || decoder.offset > 0, "Offset was not advanced") }) } } func TestDecodeUint16(t *testing.T) { tests := map[string]uint16{ "a0": uint16(0), // [cite: 41] "a1ff": uint16(255), "a201f4": uint16(500), "a22a78": uint16(10872), "a2ffff": uint16(65535), // [cite: 88] - Note: reflection test uses uint64 expected value } for hexStr, expected := range tests { t.Run(hexStr, func(t *testing.T) { decoder := newDecoderFromHex(t, hexStr) result, err := decoder.ReadUint16() // [cite: 42] require.NoError(t, err) require.Equal(t, expected, result) require.True(t, decoder.hasNextOffset || decoder.offset > 0, "Offset was not advanced") }) } } func TestDecodeUint32(t *testing.T) { tests := map[string]uint32{ "c0": uint32(0), // [cite: 43] "c1ff": uint32(255), "c201f4": uint32(500), "c22a78": uint32(10872), "c2ffff": uint32(65535), "c3ffffff": uint32(16777215), "c4ffffffff": uint32(4294967295), } for hexStr, expected := range tests { t.Run(hexStr, func(t *testing.T) { decoder := newDecoderFromHex(t, hexStr) result, err := decoder.ReadUint32() // [cite: 44] require.NoError(t, err) require.Equal(t, expected, result) require.True(t, decoder.hasNextOffset || decoder.offset > 0, "Offset was not advanced") }) } } func TestDecodeUint64(t *testing.T) { ctrlByte := "02" // Extended type for Uint64 [cite: 10] tests := map[string]uint64{ "00" + ctrlByte: uint64(0), // [cite: 45] "02" + ctrlByte + "01f4": uint64(500), "02" + ctrlByte + "2a78": uint64(10872), // Add max value tests similar to reflection_test [cite: 89] "08" + ctrlByte + "ffffffffffffffff": uint64(18446744073709551615), } for hexStr, expected := range tests { t.Run(hexStr, func(t *testing.T) { decoder := newDecoderFromHex(t, hexStr) result, err := decoder.ReadUint64() // [cite: 46] require.NoError(t, err) require.Equal(t, expected, result) require.True(t, decoder.hasNextOffset || decoder.offset > 0, "Offset was not advanced") }) } } func TestDecodeUint128(t *testing.T) { ctrlByte := "03" // Extended type for Uint128 [cite: 10] bits := uint(128) tests := map[string]*big.Int{ "00" + ctrlByte: big.NewInt(0), // [cite: 47] "02" + ctrlByte + "01f4": big.NewInt(500), "02" + ctrlByte + "2a78": big.NewInt(10872), // Add max value tests similar to reflection_test [cite: 91] "10" + ctrlByte + strings.Repeat("ff", 16): func() *big.Int { // 16 bytes = 128 bits expected := powBigInt(big.NewInt(2), bits) return expected.Sub(expected, big.NewInt(1)) }(), } for hexStr, expected := range tests { t.Run(hexStr, func(t *testing.T) { decoder := newDecoderFromHex(t, hexStr) hi, lo, err := decoder.ReadUint128() // [cite: 48] require.NoError(t, err) // Reconstruct the big.Int from hi and lo parts for comparison result := new(big.Int) result.SetUint64(hi) result.Lsh(result, 64) // Shift high part left by 64 bits result.Or(result, new(big.Int).SetUint64(lo)) // OR with low part require.Equal(t, 0, expected.Cmp(result), "Expected %v, got %v", expected.String(), result.String()) require.True(t, decoder.hasNextOffset || decoder.offset > 0, "Offset was not advanced") }) } } // TestPointers requires a specific data file and structure. func TestPointersInDecoder(t *testing.T) { // This test requires the 'maps-with-pointers.raw' file used in reflection_test [cite: 92] // It demonstrates how to handle pointers using the basic Decoder. bytes, err := os.ReadFile(testFile("maps-with-pointers.raw")) // [cite: 92] require.NoError(t, err) dd := NewDataDecoder(bytes) expected := map[uint]map[string]string{ // Offsets and expected values from reflection_test.go [cite: 92] 0: {"long_key": "long_value1"}, 22: {"long_key": "long_value2"}, 37: {"long_key2": "long_value1"}, 50: {"long_key2": "long_value2"}, 55: {"long_key": "long_value1"}, 57: {"long_key2": "long_value2"}, } for startOffset, expectedValue := range expected { t.Run(fmt.Sprintf("Offset_%d", startOffset), func(t *testing.T) { decoder := NewDecoder(dd, startOffset) // Start at the specific offset actualValue := make(map[string]string) // Expecting a map at the target offset (may be behind a pointer) mapIter, size, err := decoder.ReadMap() require.NoError(t, err, "ReadMap failed") _ = size // Use size if needed for pre-allocation for keyBytes, errIter := range mapIter { require.NoError(t, errIter) key := string(keyBytes) // Value is expected to be a string value, errDecode := decoder.ReadString() require.NoError(t, errDecode) actualValue[key] = value } require.Equal(t, expectedValue, actualValue) // Offset check might be complex here due to pointer jumps }) } } // TestBoundsChecking verifies that buffer access is properly bounds-checked // to prevent panics on malformed databases. func TestBoundsChecking(t *testing.T) { // Create a very small buffer that would cause out-of-bounds access // if bounds checking is not working smallBuffer := []byte{0x44, 0x41} // Type string (0x4), size 4, but only 2 bytes total dd := NewDataDecoder(smallBuffer) decoder := NewDecoder(dd, 0) // This should fail gracefully with an error instead of panicking _, err := decoder.ReadString() require.Error(t, err) require.Contains(t, err.Error(), "unexpected end of database") // Test DecodeBytes bounds checking with a separate buffer bytesBuffer := []byte{ 0x84, 0x41, } // Type bytes (4 << 5 = 0x80), size 4 (0x04), but only 2 bytes total dd3 := NewDataDecoder(bytesBuffer) decoder3 := NewDecoder(dd3, 0) _, err = decoder3.ReadBytes() require.Error(t, err) require.Contains(t, err.Error(), "exceeds buffer length") // Test DecodeUint128 bounds checking uint128Buffer := []byte{ 0x0B, 0x03, } // Extended type (0x0), size 11, TypeUint128-7=3, but only 2 bytes total dd2 := NewDataDecoder(uint128Buffer) decoder2 := NewDecoder(dd2, 0) _, _, err = decoder2.ReadUint128() require.Error(t, err) require.Contains(t, err.Error(), "unexpected end of database") } func TestPeekKind(t *testing.T) { tests := []struct { name string buffer []byte expected Kind }{ { name: "string type", buffer: []byte{0x44, 't', 'e', 's', 't'}, // String "test" (TypeString=2, (2<<5)|4) expected: KindString, }, { name: "map type", buffer: []byte{0xE0}, // Empty map (TypeMap=7, (7<<5)|0) expected: KindMap, }, { name: "slice type", buffer: []byte{ 0x00, 0x04, }, // Empty slice (TypeSlice=11, extended type: 0x00, TypeSlice-7=4) expected: KindSlice, }, { name: "bool type", buffer: []byte{ 0x01, 0x07, }, // Bool true (TypeBool=14, extended type: size 1, TypeBool-7=7) expected: KindBool, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { decoder := NewDecoder(NewDataDecoder(tt.buffer), 0) actualType, err := decoder.PeekKind() require.NoError(t, err, "PeekKind failed") require.Equal( t, tt.expected, actualType, "Expected type %d, got %d", tt.expected, actualType, ) // Verify that PeekKind doesn't consume the value actualType2, err := decoder.PeekKind() require.NoError(t, err, "Second PeekKind failed") require.Equal( t, tt.expected, actualType2, "Second PeekKind gave different result: expected %d, got %d", tt.expected, actualType2, ) }) } } // TestPeekKindWithPointer tests that PeekKind correctly follows pointers // to get the actual kind of the pointed-to value. func TestPeekKindWithPointer(t *testing.T) { // Create a buffer with a pointer that points to a string // This is a simplified test - in real MMDB files pointers are more complex buffer := []byte{ // Pointer (TypePointer=1, size/pointer encoding) 0x20, 0x05, // Simple pointer to offset 5 // Target string at offset 5 (but we'll put it at offset 2 for this test) 0x44, 't', 'e', 's', 't', // String "test" } decoder := NewDecoder(NewDataDecoder(buffer), 0) // PeekKind should follow the pointer and return KindString actualType, err := decoder.PeekKind() require.NoError(t, err, "PeekKind with pointer failed") // Note: This test may need adjustment based on actual pointer encoding // The important thing is that PeekKind follows pointers if actualType != KindPointer { // If the implementation follows pointers completely, it should return the target kind // If it just returns KindPointer, that's also acceptable behavior t.Logf("PeekKind returned %d (this may be expected behavior)", actualType) } } // ExampleDecoder_PeekKind demonstrates how to use PeekKind for // look-ahead parsing without consuming values. func ExampleDecoder_PeekKind() { // Create test data with different types testCases := [][]byte{ {0x44, 't', 'e', 's', 't'}, // String {0xE0}, // Empty map {0x00, 0x04}, // Empty slice (extended type) {0x01, 0x07}, // Bool true (extended type) } typeNames := []string{"String", "Map", "Slice", "Bool"} for i, buffer := range testCases { decoder := NewDecoder(NewDataDecoder(buffer), 0) // Peek at the kind without consuming it typ, err := decoder.PeekKind() if err != nil { panic(err) } fmt.Printf("Type %d: %s (value: %d)\n", i+1, typeNames[i], typ) // PeekKind doesn't consume, so we can peek again typ2, err := decoder.PeekKind() if err != nil { panic(err) } if typ != typ2 { fmt.Println("ERROR: PeekKind consumed the value!") } } // Output: // Type 1: String (value: 2) // Type 2: Map (value: 7) // Type 3: Slice (value: 11) // Type 4: Bool (value: 14) } func TestDecoderOptions(t *testing.T) { buffer := []byte{0x44, 't', 'e', 's', 't'} // String "test" dd := NewDataDecoder(buffer) // Test that options infrastructure works (even with no current options) decoder1 := NewDecoder(dd, 0) require.NotNil(t, decoder1) // Test that passing empty options slice works decoder2 := NewDecoder(dd, 0) require.NotNil(t, decoder2) } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/error_context.go000066400000000000000000000030661507532544400302600ustar00rootroot00000000000000package decoder import ( "github.com/oschwald/maxminddb-golang/v2/internal/mmdberrors" ) // errorContext provides zero-allocation error context tracking for Decoder. // This is only used when an error occurs, ensuring no performance impact // on the happy path. type errorContext struct { path *mmdberrors.PathBuilder // Only allocated when needed } // BuildPath implements mmdberrors.ErrorContextTracker. // This is only called when an error occurs, so allocation is acceptable. func (e *errorContext) BuildPath() string { if e.path == nil { return "" // No path tracking enabled } return e.path.Build() } // wrapError wraps an error with context information when an error occurs. // Zero allocation on happy path - only allocates when error != nil. func (d *Decoder) wrapError(err error) error { if err == nil { return nil } // Only wrap with context when an error actually occurs return mmdberrors.WrapWithContext(err, d.offset, nil) } // wrapErrorAtOffset wraps an error with context at a specific offset. // Used when the error occurs at a different offset than the decoder's current position. func (*Decoder) wrapErrorAtOffset(err error, offset uint) error { if err == nil { return nil } return mmdberrors.WrapWithContext(err, offset, nil) } // Example of how to integrate into existing decoder methods: // Instead of: // return mmdberrors.NewInvalidDatabaseError("message") // Use: // return d.wrapError(mmdberrors.NewInvalidDatabaseError("message")) // // This adds zero overhead when no error occurs, but provides rich context // when errors do happen. golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/error_context_test.go000066400000000000000000000174541507532544400313250ustar00rootroot00000000000000package decoder import ( "fmt" "testing" "github.com/stretchr/testify/require" "github.com/oschwald/maxminddb-golang/v2/internal/mmdberrors" ) func TestWrapError_ZeroAllocationHappyPath(t *testing.T) { buffer := []byte{0x44, 't', 'e', 's', 't'} // String "test" dd := NewDataDecoder(buffer) decoder := NewDecoder(dd, 0) // Test that no error wrapping has zero allocation err := decoder.wrapError(nil) require.NoError(t, err) // DataDecoder should always have path tracking enabled require.NotNil(t, decoder.d) } func TestWrapError_ContextWhenError(t *testing.T) { buffer := []byte{0x44, 't', 'e', 's', 't'} // String "test" dd := NewDataDecoder(buffer) decoder := NewDecoder(dd, 0) // Simulate an error with context originalErr := mmdberrors.NewInvalidDatabaseError("test error") wrappedErr := decoder.wrapError(originalErr) require.Error(t, wrappedErr) // Should be a ContextualError var contextErr mmdberrors.ContextualError require.ErrorAs(t, wrappedErr, &contextErr) // Should have offset information require.Equal(t, uint(0), contextErr.Offset) require.Equal(t, originalErr, contextErr.Err) } func TestPathBuilder(t *testing.T) { builder := mmdberrors.NewPathBuilder() // Test basic path building require.Equal(t, "/", builder.Build()) builder.PushMap("city") require.Equal(t, "/city", builder.Build()) builder.PushMap("names") require.Equal(t, "/city/names", builder.Build()) builder.PushSlice(0) require.Equal(t, "/city/names/0", builder.Build()) // Test pop builder.Pop() require.Equal(t, "/city/names", builder.Build()) // Test reset builder.Reset() require.Equal(t, "/", builder.Build()) } // Benchmark to verify zero allocation on happy path. func BenchmarkWrapError_HappyPath(b *testing.B) { buffer := []byte{0x44, 't', 'e', 's', 't'} // String "test" dd := NewDataDecoder(buffer) decoder := NewDecoder(dd, 0) b.ResetTimer() b.ReportAllocs() for range b.N { err := decoder.wrapError(nil) if err != nil { b.Fatal("unexpected error") } } } // Benchmark to show allocation only occurs on error path. func BenchmarkWrapError_ErrorPath(b *testing.B) { buffer := []byte{0x44, 't', 'e', 's', 't'} // String "test" dd := NewDataDecoder(buffer) decoder := NewDecoder(dd, 0) originalErr := mmdberrors.NewInvalidDatabaseError("test error") b.ResetTimer() b.ReportAllocs() for range b.N { err := decoder.wrapError(originalErr) if err == nil { b.Fatal("expected error") } } } // Example showing the API in action. func ExampleContextualError() { // This would be internal to the decoder, shown for illustration builder := mmdberrors.NewPathBuilder() builder.PushMap("city") builder.PushMap("names") builder.PushMap("en") // Simulate an error with context originalErr := mmdberrors.NewInvalidDatabaseError("string too long") contextTracker := &errorContext{path: builder} wrappedErr := mmdberrors.WrapWithContext(originalErr, 1234, contextTracker) fmt.Println(wrappedErr.Error()) // Output: at offset 1234, path /city/names/en: string too long } func TestContextualErrorIntegration(t *testing.T) { t.Run("InvalidStringLength", func(t *testing.T) { // String claims size 4 but buffer only has 3 bytes total buffer := []byte{0x44, 't', 'e', 's'} // Test ReflectionDecoder rd := New(buffer) var result string err := rd.Decode(0, &result) require.Error(t, err) var contextErr mmdberrors.ContextualError require.ErrorAs(t, err, &contextErr) require.Equal(t, uint(0), contextErr.Offset) require.Contains(t, contextErr.Error(), "offset 0") // Test new Decoder API dd := NewDataDecoder(buffer) decoder := NewDecoder(dd, 0) _, err = decoder.ReadString() require.Error(t, err) require.ErrorAs(t, err, &contextErr) require.Equal(t, uint(0), contextErr.Offset) require.Contains(t, contextErr.Error(), "offset 0") }) t.Run("NestedMapWithPath", func(t *testing.T) { // Map with nested structure that has an error deep inside // Map { "key": invalid_string } buffer := []byte{ 0xe1, // Map with 1 item 0x43, 'k', 'e', 'y', // Key "key" (3 bytes) 0x44, 't', 'e', // Invalid string (claims size 4, only has 2 bytes) } // Test ReflectionDecoder with map decoding rd := New(buffer) var result map[string]string err := rd.Decode(0, &result) require.Error(t, err) // Should get a wrapped error with path information var contextErr mmdberrors.ContextualError require.ErrorAs(t, err, &contextErr) require.Equal(t, "/key", contextErr.Path) require.Contains(t, contextErr.Error(), "path /key") // Test new Decoder API - no automatic path tracking dd := NewDataDecoder(buffer) decoder := NewDecoder(dd, 0) mapIter, _, err := decoder.ReadMap() require.NoError(t, err, "ReadMap failed") var mapErr error for _, iterErr := range mapIter { if iterErr != nil { mapErr = iterErr break } // Try to read the value (this should fail) _, mapErr = decoder.ReadString() if mapErr != nil { break } } require.Error(t, mapErr) require.ErrorAs(t, mapErr, &contextErr) // New API should have offset but no path require.Contains(t, contextErr.Error(), "offset") require.Empty(t, contextErr.Path) }) t.Run("SliceIndexInPath", func(t *testing.T) { // Create nested map-slice-map structure: { "list": [{"name": invalid_string}] } // This will test path like /list/0/name buffer := []byte{ 0xe1, // Map with 1 item 0x44, 'l', 'i', 's', 't', // Key "list" (4 bytes) 0x01, 0x04, // Array with 1 item (extended type: type=4 (slice), count=1) 0xe1, // Map with 1 item (array element) 0x44, 'n', 'a', 'm', 'e', // Key "name" (4 bytes) 0x44, 't', 'e', // Invalid string (claims size 4, only has 2 bytes) } // Test ReflectionDecoder with slice index in path rd := New(buffer) var result map[string][]map[string]string err := rd.Decode(0, &result) require.Error(t, err) // Debug: print the actual error and path t.Logf("Error: %v", err) // Should get a wrapped error with slice index in path var contextErr mmdberrors.ContextualError require.ErrorAs(t, err, &contextErr) t.Logf("Path: %s", contextErr.Path) // Verify we get the exact path with correct order require.Equal(t, "/list/0/name", contextErr.Path) require.Contains(t, contextErr.Error(), "path /list/0/name") require.Contains(t, contextErr.Error(), "offset") // Test new Decoder API - manual iteration, no automatic path tracking dd := NewDataDecoder(buffer) decoder := NewDecoder(dd, 0) // Navigate through the nested structure manually mapIter, _, err := decoder.ReadMap() require.NoError(t, err, "ReadMap failed") var mapErr error for key, iterErr := range mapIter { if iterErr != nil { mapErr = iterErr break } require.Equal(t, "list", string(key)) // Read the array sliceIter, _, err := decoder.ReadSlice() require.NoError(t, err, "ReadSlice failed") sliceIndex := 0 for sliceIterErr := range sliceIter { if sliceIterErr != nil { mapErr = sliceIterErr break } require.Equal(t, 0, sliceIndex) // Should be first element // Read the nested map (array element) innerMapIter, _, err := decoder.ReadMap() require.NoError(t, err, "ReadMap failed") for innerKey, innerIterErr := range innerMapIter { if innerIterErr != nil { mapErr = innerIterErr break } require.Equal(t, "name", string(innerKey)) // Try to read the invalid string (this should fail) _, mapErr = decoder.ReadString() if mapErr != nil { break } } if mapErr != nil { break } sliceIndex++ } if mapErr != nil { break } } require.Error(t, mapErr) require.ErrorAs(t, mapErr, &contextErr) // New API should have offset but no path (since it's manual iteration) require.Contains(t, contextErr.Error(), "offset") require.Empty(t, contextErr.Path) }) } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/example_kind_test.go000066400000000000000000000023731507532544400310620ustar00rootroot00000000000000package decoder import ( "fmt" ) // ExampleKind_String demonstrates human-readable Kind names. func ExampleKind_String() { kinds := []Kind{KindString, KindMap, KindSlice, KindUint32, KindBool} for _, k := range kinds { fmt.Printf("%s\n", k.String()) } // Output: // String // Map // Slice // Uint32 // Bool } // ExampleKind_IsContainer demonstrates container type detection. func ExampleKind_IsContainer() { kinds := []Kind{KindString, KindMap, KindSlice, KindUint32} for _, k := range kinds { if k.IsContainer() { fmt.Printf("%s is a container type\n", k.String()) } else { fmt.Printf("%s is not a container type\n", k.String()) } } // Output: // String is not a container type // Map is a container type // Slice is a container type // Uint32 is not a container type } // ExampleKind_IsScalar demonstrates scalar type detection. func ExampleKind_IsScalar() { kinds := []Kind{KindString, KindMap, KindUint32, KindPointer} for _, k := range kinds { if k.IsScalar() { fmt.Printf("%s is a scalar value\n", k.String()) } else { fmt.Printf("%s is not a scalar value\n", k.String()) } } // Output: // String is a scalar value // Map is not a scalar value // Uint32 is a scalar value // Pointer is not a scalar value } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/field_precedence_test.go000066400000000000000000000067711507532544400316700ustar00rootroot00000000000000package decoder import ( "encoding/hex" "reflect" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) // TestFieldPrecedenceRules tests json/v2 style field precedence behavior. func TestFieldPrecedenceRules(t *testing.T) { // Test data: {"en": "Foo"} testData := "e142656e43466f6f" testBytes, err := hex.DecodeString(testData) require.NoError(t, err) t.Run("DirectFieldWinsOverEmbedded", func(t *testing.T) { type Embedded struct { En string `maxminddb:"en"` } target := &struct { Embedded En string `maxminddb:"en"` // Direct field should win }{} decoder := New(testBytes) err := decoder.Decode(0, target) require.NoError(t, err) assert.Equal(t, "Foo", target.En, "Direct field should be set") assert.Empty(t, target.Embedded.En, "Embedded field should not be set due to precedence") }) t.Run("TaggedFieldWinsOverUntagged", func(t *testing.T) { type Untagged struct { En string // Untagged field } target := &struct { Untagged En string `maxminddb:"en"` // Tagged field should win }{} decoder := New(testBytes) err := decoder.Decode(0, target) require.NoError(t, err) assert.Equal(t, "Foo", target.En, "Tagged field should be set") assert.Empty(t, target.Untagged.En, "Untagged field should not be set") }) t.Run("ShallowFieldWinsOverDeep", func(t *testing.T) { type DeepNested struct { En string `maxminddb:"en"` // Deeper field } type MiddleNested struct { DeepNested } target := &struct { MiddleNested En string `maxminddb:"en"` // Shallow field should win }{} decoder := New(testBytes) err := decoder.Decode(0, target) require.NoError(t, err) assert.Equal(t, "Foo", target.En, "Shallow field should be set") assert.Empty(t, target.DeepNested.En, "Deep field should not be set due to precedence") }) } // TestEmbeddedPointerSupport tests support for embedded pointer types. func TestEmbeddedPointerSupport(t *testing.T) { // Test data: {"data": "test"} testData := "e144646174614474657374" testBytes, err := hex.DecodeString(testData) require.NoError(t, err) type EmbeddedPointer struct { Data string `maxminddb:"data"` } target := &struct { *EmbeddedPointer Other string `maxminddb:"other"` }{} decoder := New(testBytes) err = decoder.Decode(0, target) require.NoError(t, err) // Test embedded pointer field access - this was causing nil pointer dereference before fix require.NotNil(t, target.EmbeddedPointer, "Embedded pointer should be initialized") assert.Equal(t, "test", target.Data) } // TestFieldCaching tests the field caching mechanism works with new precedence rules. func TestFieldCaching(t *testing.T) { type Embedded struct { Field1 string `maxminddb:"field1"` } type TestStruct struct { Embedded Field2 int `maxminddb:"field2"` Field3 bool `maxminddb:"field3"` } // Test that multiple instances use cached fields s1 := TestStruct{} s2 := TestStruct{} fields1 := cachedFields(reflect.ValueOf(s1)) fields2 := cachedFields(reflect.ValueOf(s2)) // Should be the same cached instance assert.Same(t, fields1, fields2, "Same struct type should use cached fields") // Verify field mapping includes embedded fields expectedFieldNames := []string{"field1", "field2", "field3"} assert.Len(t, fields1.namedFields, 3, "Should have 3 named fields") for _, name := range expectedFieldNames { assert.Contains(t, fields1.namedFields, name, "Should contain field: "+name) assert.NotNil(t, fields1.namedFields[name], "Field info should not be nil: "+name) } } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/kind_test.go000066400000000000000000000067711507532544400273550ustar00rootroot00000000000000package decoder import ( "testing" "github.com/stretchr/testify/require" ) func TestKind_String(t *testing.T) { tests := []struct { kind Kind expected string }{ {KindExtended, "Extended"}, {KindPointer, "Pointer"}, {KindString, "String"}, {KindFloat64, "Float64"}, {KindBytes, "Bytes"}, {KindUint16, "Uint16"}, {KindUint32, "Uint32"}, {KindMap, "Map"}, {KindInt32, "Int32"}, {KindUint64, "Uint64"}, {KindUint128, "Uint128"}, {KindSlice, "Slice"}, {KindContainer, "Container"}, {KindEndMarker, "EndMarker"}, {KindBool, "Bool"}, {KindFloat32, "Float32"}, {Kind(999), "Unknown(999)"}, // Test unknown kind } for _, tt := range tests { t.Run(tt.expected, func(t *testing.T) { result := tt.kind.String() require.Equal(t, tt.expected, result) }) } } func TestKind_IsContainer(t *testing.T) { tests := []struct { kind Kind expected bool name string }{ {KindMap, true, "Map is container"}, {KindSlice, true, "Slice is container"}, {KindString, false, "String is not container"}, {KindUint32, false, "Uint32 is not container"}, {KindBool, false, "Bool is not container"}, {KindPointer, false, "Pointer is not container"}, {KindExtended, false, "Extended is not container"}, { KindContainer, false, "Container is not container", }, // Container is special, not a data container } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { result := tt.kind.IsContainer() require.Equal(t, tt.expected, result) }) } } func TestKind_IsScalar(t *testing.T) { tests := []struct { kind Kind expected bool name string }{ {KindString, true, "String is scalar"}, {KindFloat64, true, "Float64 is scalar"}, {KindBytes, true, "Bytes is scalar"}, {KindUint16, true, "Uint16 is scalar"}, {KindUint32, true, "Uint32 is scalar"}, {KindInt32, true, "Int32 is scalar"}, {KindUint64, true, "Uint64 is scalar"}, {KindUint128, true, "Uint128 is scalar"}, {KindBool, true, "Bool is scalar"}, {KindFloat32, true, "Float32 is scalar"}, {KindMap, false, "Map is not scalar"}, {KindSlice, false, "Slice is not scalar"}, {KindPointer, false, "Pointer is not scalar"}, {KindExtended, false, "Extended is not scalar"}, {KindContainer, false, "Container is not scalar"}, {KindEndMarker, false, "EndMarker is not scalar"}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { result := tt.kind.IsScalar() require.Equal(t, tt.expected, result) }) } } func TestKind_Classification(t *testing.T) { // Test that IsContainer and IsScalar are mutually exclusive for data types for k := KindExtended; k <= KindFloat32; k++ { isContainer := k.IsContainer() isScalar := k.IsScalar() // For actual data types (not meta types), they should be either container or scalar switch k { case KindMap, KindSlice: require.True(t, isContainer, "Kind %s should be container", k.String()) require.False(t, isScalar, "Kind %s should not be scalar", k.String()) case KindString, KindFloat64, KindBytes, KindUint16, KindUint32, KindInt32, KindUint64, KindUint128, KindBool, KindFloat32: require.True(t, isScalar, "Kind %s should be scalar", k.String()) require.False(t, isContainer, "Kind %s should not be container", k.String()) default: // Meta types like Extended, Pointer, Container, EndMarker are neither require.False(t, isContainer, "Meta kind %s should not be container", k.String()) require.False(t, isScalar, "Meta kind %s should not be scalar", k.String()) } } } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/nested_unmarshaler_test.go000066400000000000000000000163021507532544400323020ustar00rootroot00000000000000package decoder import ( "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) // Inner type with UnmarshalMaxMindDB. type testInnerNested struct { Value string custom bool // track if custom unmarshaler was called } func (i *testInnerNested) UnmarshalMaxMindDB(d *Decoder) error { i.custom = true str, err := d.ReadString() if err != nil { return err } i.Value = "custom:" + str return nil } // TestNestedUnmarshaler tests that UnmarshalMaxMindDB is called for nested struct fields. func TestNestedUnmarshaler(t *testing.T) { // Outer type without UnmarshalMaxMindDB type Outer struct { Field testInnerNested Name string } // Create test data: a map with "Field" -> "test" and "Name" -> "example" data := []byte{ // Map with 2 items 0xe2, // Key "Field" 0x45, 'F', 'i', 'e', 'l', 'd', // Value "test" (string) 0x44, 't', 'e', 's', 't', // Key "Name" 0x44, 'N', 'a', 'm', 'e', // Value "example" (string) 0x47, 'e', 'x', 'a', 'm', 'p', 'l', 'e', } t.Run("nested field with UnmarshalMaxMindDB", func(t *testing.T) { d := New(data) var result Outer err := d.Decode(0, &result) require.NoError(t, err) // Check that custom unmarshaler WAS called for nested field require.True( t, result.Field.custom, "Custom unmarshaler should be called for nested fields", ) require.Equal(t, "custom:test", result.Field.Value) require.Equal(t, "example", result.Name) }) } // testInnerPointer with UnmarshalMaxMindDB for pointer test. type testInnerPointer struct { Value string custom bool } func (i *testInnerPointer) UnmarshalMaxMindDB(d *Decoder) error { i.custom = true str, err := d.ReadString() if err != nil { return err } i.Value = "ptr:" + str return nil } // TestNestedUnmarshalerPointer tests UnmarshalMaxMindDB with pointer fields. func TestNestedUnmarshalerPointer(t *testing.T) { type Outer struct { Field *testInnerPointer Name string } // Test data data := []byte{ // Map with 2 items 0xe2, // Key "Field" 0x45, 'F', 'i', 'e', 'l', 'd', // Value "test" 0x44, 't', 'e', 's', 't', // Key "Name" 0x44, 'N', 'a', 'm', 'e', // Value "example" 0x47, 'e', 'x', 'a', 'm', 'p', 'l', 'e', } t.Run("pointer field with UnmarshalMaxMindDB", func(t *testing.T) { d := New(data) var result Outer err := d.Decode(0, &result) require.NoError(t, err) // The pointer should be created and unmarshaled with custom unmarshaler require.NotNil(t, result.Field) require.True( t, result.Field.custom, "Custom unmarshaler should be called for pointer fields", ) require.Equal(t, "ptr:test", result.Field.Value) require.Equal(t, "example", result.Name) }) } // testItem with UnmarshalMaxMindDB for slice test. type testItem struct { ID int custom bool } func (item *testItem) UnmarshalMaxMindDB(d *Decoder) error { item.custom = true id, err := d.ReadUint32() if err != nil { return err } item.ID = int(id) * 2 return nil } // TestNestedUnmarshalerInSlice tests UnmarshalMaxMindDB for slice elements. func TestNestedUnmarshalerInSlice(t *testing.T) { type Container struct { Items []testItem } // Test data: a map with "Items" -> [1, 2, 3] data := []byte{ // Map with 1 item (KindMap=7 << 5 | size=1) 0xe1, // Key "Items" (KindString=2 << 5 | size=5) 0x45, 'I', 't', 'e', 'm', 's', // Slice with 3 items - KindSlice=11, which is > 7, so we need extended type // Extended type: ctrl_byte = (KindExtended << 5) | size = (0 << 5) | 3 = 0x03 // Next byte: KindSlice - 7 = 11 - 7 = 4 0x03, 0x04, // Value 1 (KindUint32=6 << 5 | size=1) 0xc1, 0x01, // Value 2 (KindUint32=6 << 5 | size=1) 0xc1, 0x02, // Value 3 (KindUint32=6 << 5 | size=1) 0xc1, 0x03, } t.Run("slice elements with UnmarshalMaxMindDB", func(t *testing.T) { d := New(data) var result Container err := d.Decode(0, &result) require.NoError(t, err) require.Len(t, result.Items, 3) // With custom unmarshaler, values should be doubled require.True( t, result.Items[0].custom, "Custom unmarshaler should be called for slice elements", ) require.Equal(t, 2, result.Items[0].ID) // 1 * 2 require.Equal(t, 4, result.Items[1].ID) // 2 * 2 require.Equal(t, 6, result.Items[2].ID) // 3 * 2 }) } // testValue with UnmarshalMaxMindDB for map test. type testValue struct { Data string custom bool } func (v *testValue) UnmarshalMaxMindDB(d *Decoder) error { v.custom = true str, err := d.ReadString() if err != nil { return err } v.Data = "map:" + str return nil } // TestNestedUnmarshalerInMap tests UnmarshalMaxMindDB for map values. func TestNestedUnmarshalerInMap(t *testing.T) { // Test data: {"key1": "value1", "key2": "value2"} data := []byte{ // Map with 2 items 0xe2, // Key "key1" 0x44, 'k', 'e', 'y', '1', // Value "value1" 0x46, 'v', 'a', 'l', 'u', 'e', '1', // Key "key2" 0x44, 'k', 'e', 'y', '2', // Value "value2" 0x46, 'v', 'a', 'l', 'u', 'e', '2', } t.Run("map values with UnmarshalMaxMindDB", func(t *testing.T) { d := New(data) var result map[string]testValue err := d.Decode(0, &result) require.NoError(t, err) require.Len(t, result, 2) require.True(t, result["key1"].custom, "Custom unmarshaler should be called for map values") require.Equal(t, "map:value1", result["key1"].Data) require.Equal(t, "map:value2", result["key2"].Data) }) } // testMapIterator uses ReadMap() iterator to simulate mmdbtype.Map behavior. type testMapIterator struct { Values map[string]string custom bool } func (m *testMapIterator) UnmarshalMaxMindDB(d *Decoder) error { m.custom = true iter, size, err := d.ReadMap() if err != nil { return err } m.Values = make(map[string]string, size) for key, iterErr := range iter { if iterErr != nil { return iterErr } // Read the value as a string value, err := d.ReadString() if err != nil { return err } m.Values[string(key)] = value } return nil } // TestCustomUnmarshalerWithIterator tests that custom unmarshalers using iterators // work correctly in struct fields. This reproduces the original "no next offset available" // issue that occurred when mmdbtype.Map was used in structs. func TestCustomUnmarshalerWithIterator(t *testing.T) { type Record struct { Name string Location testMapIterator // This field uses ReadMap() iterator Country string } data := []byte{ // Map with 3 items 0xe3, // Key "Name" 0x44, 'N', 'a', 'm', 'e', // Value "Test" (string) 0x44, 'T', 'e', 's', 't', // Key "Location" 0x48, 'L', 'o', 'c', 'a', 't', 'i', 'o', 'n', // Value: Map with 2 items (latitude and longitude) 0xe2, // Key "lat" 0x43, 'l', 'a', 't', // Value "40.7" 0x44, '4', '0', '.', '7', // Key "lng" 0x43, 'l', 'n', 'g', // Value "-74.0" 0x45, '-', '7', '4', '.', '0', // Key "Country" 0x47, 'C', 'o', 'u', 'n', 't', 'r', 'y', // Value "US" 0x42, 'U', 'S', } d := New(data) var result Record err := d.Decode(0, &result) require.NoError(t, err) require.Equal(t, "Test", result.Name) assert.True(t, result.Location.custom, "Custom unmarshaler should be called") assert.Len(t, result.Location.Values, 2) assert.Equal(t, "40.7", result.Location.Values["lat"]) assert.Equal(t, "-74.0", result.Location.Values["lng"]) assert.Equal(t, "US", result.Country) } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/performance_test.go000066400000000000000000000044311507532544400307200ustar00rootroot00000000000000package decoder import ( "encoding/hex" "reflect" "testing" ) const testDataHex = "e142656e43466f6f" // Map with: "en"->"Foo" // BenchmarkStructDecoding tests the performance of struct decoding // with the new optimized field access patterns. func BenchmarkStructDecoding(b *testing.B) { // Create test data from field_precedence_test.go mmdbHex := testDataHex testBytes, err := hex.DecodeString(mmdbHex) if err != nil { b.Fatalf("Failed to decode hex: %v", err) } decoder := New(testBytes) // Test struct that exercises field access patterns type TestStruct struct { En string `maxminddb:"en"` // Simple field } b.ResetTimer() for range b.N { var result TestStruct err := decoder.Decode(0, &result) if err != nil { b.Fatalf("Decode failed: %v", err) } } } // BenchmarkSimpleDecoding tests basic decoding performance. func BenchmarkSimpleDecoding(b *testing.B) { // Simple test data - same as struct decoding mmdbHex := testDataHex testBytes, err := hex.DecodeString(mmdbHex) if err != nil { b.Fatalf("Failed to decode hex: %v", err) } decoder := New(testBytes) type TestStruct struct { En string `maxminddb:"en"` } b.ResetTimer() for range b.N { var result TestStruct err := decoder.Decode(0, &result) if err != nil { b.Fatalf("Decode failed: %v", err) } } } // BenchmarkFieldLookup tests the performance of field lookup with // the optimized field maps. func BenchmarkFieldLookup(b *testing.B) { // Create a struct with many fields to test map performance type LargeStruct struct { Field01 string `maxminddb:"f01"` Field02 string `maxminddb:"f02"` Field03 string `maxminddb:"f03"` Field04 string `maxminddb:"f04"` Field05 string `maxminddb:"f05"` Field06 string `maxminddb:"f06"` Field07 string `maxminddb:"f07"` Field08 string `maxminddb:"f08"` Field09 string `maxminddb:"f09"` Field10 string `maxminddb:"f10"` } // Build the field cache var testStruct LargeStruct fields := cachedFields(reflect.ValueOf(testStruct)) fieldNames := []string{"f01", "f02", "f03", "f04", "f05", "f06", "f07", "f08", "f09", "f10"} b.ResetTimer() for range b.N { // Test field lookup performance for _, name := range fieldNames { _, exists := fields.namedFields[name] if !exists { b.Fatalf("Field %s not found", name) } } } } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/reflection.go000066400000000000000000001012271507532544400275130ustar00rootroot00000000000000package decoder import ( "errors" "fmt" "math/big" "reflect" "sync" "unicode/utf8" "github.com/oschwald/maxminddb-golang/v2/internal/mmdberrors" ) // Unmarshaler is implemented by types that can unmarshal MaxMind DB data. // This is used internally for reflection-based decoding. type Unmarshaler interface { UnmarshalMaxMindDB(d *Decoder) error } // ReflectionDecoder is a decoder for the MMDB data section. type ReflectionDecoder struct { DataDecoder } // New creates a [ReflectionDecoder]. func New(buffer []byte) ReflectionDecoder { return ReflectionDecoder{ DataDecoder: NewDataDecoder(buffer), } } // IsEmptyValueAt checks if the value at the given offset is an empty map or array. // Returns true if the value is a map or array with size 0. func (d *ReflectionDecoder) IsEmptyValueAt(offset uint) (bool, error) { dataOffset := offset for { kindNum, size, newOffset, err := d.decodeCtrlData(dataOffset) if err != nil { return false, err } if kindNum == KindPointer { dataOffset, _, err = d.decodePointer(size, newOffset) if err != nil { return false, err } continue } // Check if it's a map or array with size 0 return (kindNum == KindMap || kindNum == KindSlice) && size == 0, nil } } // Decode decodes the data value at offset and stores it in the value // pointed at by v. func (d *ReflectionDecoder) Decode(offset uint, v any) error { // Check if the type implements Unmarshaler interface without reflection if unmarshaler, ok := v.(Unmarshaler); ok { decoder := NewDecoder(d.DataDecoder, offset) return unmarshaler.UnmarshalMaxMindDB(decoder) } rv := reflect.ValueOf(v) if rv.Kind() != reflect.Ptr || rv.IsNil() { return errors.New("result param must be a pointer") } _, err := d.decode(offset, rv, 0) if err == nil { return nil } // Check if error already has context (including path), if so just add offset if missing var contextErr mmdberrors.ContextualError if errors.As(err, &contextErr) { // If the outermost error already has offset and path info, return as-is if contextErr.Offset != 0 || contextErr.Path != "" { return err } // Otherwise, just add offset to root return mmdberrors.WrapWithContext(contextErr.Err, offset, nil) } // Plain error, add offset return mmdberrors.WrapWithContext(err, offset, nil) } // DecodePath decodes the data value at offset and stores the value associated // with the path in the value pointed at by v. func (d *ReflectionDecoder) DecodePath( offset uint, path []any, v any, ) error { result := reflect.ValueOf(v) if result.Kind() != reflect.Ptr || result.IsNil() { return errors.New("result param must be a pointer") } PATH: for i, v := range path { var ( typeNum Kind size uint err error ) typeNum, size, offset, err = d.decodeCtrlData(offset) if err != nil { return err } if typeNum == KindPointer { pointer, _, err := d.decodePointer(size, offset) if err != nil { return err } typeNum, size, offset, err = d.decodeCtrlData(pointer) if err != nil { return err } // Check for pointer-to-pointer after we've already read the data if typeNum == KindPointer { return mmdberrors.NewInvalidDatabaseError( "invalid pointer to pointer at offset %d", pointer, ) } } switch v := v.(type) { case string: // We are expecting a map if typeNum != KindMap { return fmt.Errorf("expected a map for %s but found %s", v, typeNum.String()) } for range size { var key []byte key, offset, err = d.decodeKey(offset) if err != nil { return err } if string(key) == v { continue PATH } offset, err = d.nextValueOffset(offset, 1) if err != nil { return err } } // Not found. Maybe return a boolean? return nil case int: // We are expecting an array if typeNum != KindSlice { return fmt.Errorf("expected a slice for %d but found %s", v, typeNum.String()) } var i uint if v < 0 { if size < uint(-v) { // Slice is smaller than negative index, not found return nil } i = size - uint(-v) } else { if size <= uint(v) { // Slice is smaller than index, not found return nil } i = uint(v) } offset, err = d.nextValueOffset(offset, i) if err != nil { return err } default: return fmt.Errorf("unexpected type for %d value in path, %v: %T", i, v, v) } } _, err := d.decode(offset, result, len(path)) return d.wrapError(err, offset) } // wrapError wraps an error with context information when an error occurs. // Zero allocation on happy path - only allocates when error != nil. func (*ReflectionDecoder) wrapError(err error, offset uint) error { if err == nil { return nil } // Only wrap with context when an error actually occurs return mmdberrors.WrapWithContext(err, offset, nil) } // wrapErrorWithMapKey wraps an error with map key context, building path retroactively. // Zero allocation on happy path - only allocates when error != nil. func (*ReflectionDecoder) wrapErrorWithMapKey(err error, key string) error { if err == nil { return nil } // Build path context retroactively by checking if the error already has context var pathBuilder *mmdberrors.PathBuilder var contextErr mmdberrors.ContextualError if errors.As(err, &contextErr) { // Error already has context, extract existing path and extend it pathBuilder = mmdberrors.NewPathBuilder() if contextErr.Path != "" && contextErr.Path != "/" { // Parse existing path and rebuild pathBuilder.ParseAndExtend(contextErr.Path) } pathBuilder.PrependMap(key) // Return unwrapped error with extended path, preserving original offset return mmdberrors.WrapWithContext(contextErr.Err, contextErr.Offset, pathBuilder) } // New error, start building path - extract offset if it's already a contextual error pathBuilder = mmdberrors.NewPathBuilder() pathBuilder.PrependMap(key) // Try to get existing offset from any wrapped contextual error var existingOffset uint var existingErr mmdberrors.ContextualError if errors.As(err, &existingErr) { existingOffset = existingErr.Offset } return mmdberrors.WrapWithContext(err, existingOffset, pathBuilder) } // wrapErrorWithSliceIndex wraps an error with slice index context, building path retroactively. // Zero allocation on happy path - only allocates when error != nil. func (*ReflectionDecoder) wrapErrorWithSliceIndex(err error, index int) error { if err == nil { return nil } // Build path context retroactively by checking if the error already has context var pathBuilder *mmdberrors.PathBuilder var contextErr mmdberrors.ContextualError if errors.As(err, &contextErr) { // Error already has context, extract existing path and extend it pathBuilder = mmdberrors.NewPathBuilder() if contextErr.Path != "" && contextErr.Path != "/" { // Parse existing path and rebuild pathBuilder.ParseAndExtend(contextErr.Path) } pathBuilder.PrependSlice(index) // Return unwrapped error with extended path, preserving original offset return mmdberrors.WrapWithContext(contextErr.Err, contextErr.Offset, pathBuilder) } // New error, start building path - extract offset if it's already a contextual error pathBuilder = mmdberrors.NewPathBuilder() pathBuilder.PrependSlice(index) // Try to get existing offset from any wrapped contextual error var existingOffset uint var existingErr mmdberrors.ContextualError if errors.As(err, &existingErr) { existingOffset = existingErr.Offset } return mmdberrors.WrapWithContext(err, existingOffset, pathBuilder) } func (d *ReflectionDecoder) decode(offset uint, result reflect.Value, depth int) (uint, error) { // Convert to addressableValue and delegate to internal method // Use fast path for already addressable values to avoid allocation if result.CanAddr() { av := addressableValue{Value: result, forcedAddr: false} return d.decodeValue(offset, av, depth) } av := makeAddressable(result) return d.decodeValue(offset, av, depth) } // decodeValue is the internal decode method that works with addressableValue // for consistent optimization throughout the decoder. func (d *ReflectionDecoder) decodeValue( offset uint, result addressableValue, depth int, ) (uint, error) { if depth > maximumDataStructureDepth { return 0, mmdberrors.NewInvalidDatabaseError( "exceeded maximum data structure depth; database is likely corrupt", ) } // Apply the original indirect logic to handle pointers and interfaces properly for { // Load value from interface, but only if the result will be // usefully addressable. if result.Kind() == reflect.Interface && !result.IsNil() { e := result.Elem() if e.Kind() == reflect.Ptr && !e.IsNil() { result = addressableValue{e, result.forcedAddr} continue } } if result.Kind() != reflect.Ptr { break } if result.IsNil() { result.Set(reflect.New(result.Type().Elem())) } result = addressableValue{ result.Elem(), false, } // dereferenced pointer is always addressable } // Check if the value implements Unmarshaler interface using type assertion if result.CanAddr() { if unmarshaler, ok := tryTypeAssert(result.Addr()); ok { decoder := NewDecoder(d.DataDecoder, offset) if err := unmarshaler.UnmarshalMaxMindDB(decoder); err != nil { return 0, err } return d.nextValueOffset(offset, 1) } } typeNum, size, newOffset, err := d.decodeCtrlData(offset) if err != nil { return 0, err } if typeNum != KindPointer && result.Kind() == reflect.Uintptr { result.Set(reflect.ValueOf(uintptr(offset))) return d.nextValueOffset(offset, 1) } return d.decodeFromType(typeNum, size, newOffset, result, depth+1) } func (d *ReflectionDecoder) decodeFromType( dtype Kind, size uint, offset uint, result addressableValue, depth int, ) (uint, error) { // For these types, size has a special meaning switch dtype { case KindBool: return d.unmarshalBool(size, offset, result) case KindMap: return d.unmarshalMap(size, offset, result, depth) case KindPointer: return d.unmarshalPointer(size, offset, result, depth) case KindSlice: return d.unmarshalSlice(size, offset, result, depth) case KindBytes: return d.unmarshalBytes(size, offset, result) case KindFloat32: return d.unmarshalFloat32(size, offset, result) case KindFloat64: return d.unmarshalFloat64(size, offset, result) case KindInt32: return d.unmarshalInt32(size, offset, result) case KindUint16: return d.unmarshalUint(size, offset, result, 16) case KindUint32: return d.unmarshalUint(size, offset, result, 32) case KindUint64: return d.unmarshalUint(size, offset, result, 64) case KindString: return d.unmarshalString(size, offset, result) case KindUint128: return d.unmarshalUint128(size, offset, result) default: return 0, mmdberrors.NewInvalidDatabaseError("unknown type: %d", dtype) } } func (d *ReflectionDecoder) unmarshalBool( size, offset uint, result addressableValue, ) (uint, error) { value, newOffset, err := d.decodeBool(size, offset) if err != nil { return 0, err } switch result.Kind() { case reflect.Bool: result.SetBool(value) return newOffset, nil case reflect.Interface: if result.NumMethod() == 0 { result.Set(reflect.ValueOf(value)) return newOffset, nil } default: // Fall through to error return } return newOffset, mmdberrors.NewUnmarshalTypeError(value, result.Type()) } var sliceType = reflect.TypeOf([]byte{}) func (d *ReflectionDecoder) unmarshalBytes( size, offset uint, result addressableValue, ) (uint, error) { value, newOffset, err := d.decodeBytes(size, offset) if err != nil { return 0, err } switch result.Kind() { case reflect.Slice: if result.Type() == sliceType { result.SetBytes(value) return newOffset, nil } case reflect.Interface: if result.NumMethod() == 0 { result.Set(reflect.ValueOf(value)) return newOffset, nil } default: // Fall through to error return } return newOffset, mmdberrors.NewUnmarshalTypeError(value, result.Type()) } func (d *ReflectionDecoder) unmarshalFloat32( size, offset uint, result addressableValue, ) (uint, error) { value, newOffset, err := d.decodeFloat32(size, offset) if err != nil { return 0, err } switch result.Kind() { case reflect.Float32, reflect.Float64: result.SetFloat(float64(value)) return newOffset, nil case reflect.Interface: if result.NumMethod() == 0 { result.Set(reflect.ValueOf(value)) return newOffset, nil } default: // Fall through to error return } return newOffset, mmdberrors.NewUnmarshalTypeError(value, result.Type()) } func (d *ReflectionDecoder) unmarshalFloat64( size, offset uint, result addressableValue, ) (uint, error) { value, newOffset, err := d.decodeFloat64(size, offset) if err != nil { return 0, err } switch result.Kind() { case reflect.Float32, reflect.Float64: if result.OverflowFloat(value) { return 0, mmdberrors.NewUnmarshalTypeError(value, result.Type()) } result.SetFloat(value) return newOffset, nil case reflect.Interface: if result.NumMethod() == 0 { result.Set(reflect.ValueOf(value)) return newOffset, nil } default: // Fall through to error return } return newOffset, mmdberrors.NewUnmarshalTypeError(value, result.Type()) } func (d *ReflectionDecoder) unmarshalInt32( size, offset uint, result addressableValue, ) (uint, error) { value, newOffset, err := d.decodeInt32(size, offset) if err != nil { return 0, err } switch result.Kind() { case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: n := int64(value) if !result.OverflowInt(n) { result.SetInt(n) return newOffset, nil } case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: n := uint64(value) if !result.OverflowUint(n) { result.SetUint(n) return newOffset, nil } case reflect.Interface: if result.NumMethod() == 0 { result.Set(reflect.ValueOf(value)) return newOffset, nil } default: // Fall through to error return } return newOffset, mmdberrors.NewUnmarshalTypeError(value, result.Type()) } func (d *ReflectionDecoder) unmarshalMap( size uint, offset uint, result addressableValue, depth int, ) (uint, error) { switch result.Kind() { case reflect.Struct: return d.decodeStruct(size, offset, result, depth) case reflect.Map: return d.decodeMap(size, offset, result, depth) case reflect.Interface: if result.NumMethod() == 0 { // Create map directly without makeAddressable wrapper mapVal := reflect.ValueOf(make(map[string]any, size)) rv := addressableValue{Value: mapVal, forcedAddr: false} newOffset, err := d.decodeMap(size, offset, rv, depth) result.Set(rv.Value) return newOffset, err } return 0, mmdberrors.NewUnmarshalTypeStrError("map", result.Type()) default: return 0, mmdberrors.NewUnmarshalTypeStrError("map", result.Type()) } } func (d *ReflectionDecoder) unmarshalPointer( size, offset uint, result addressableValue, depth int, ) (uint, error) { pointer, newOffset, err := d.decodePointer(size, offset) if err != nil { return 0, err } // Check for pointer-to-pointer by looking at what we're about to decode // This is done efficiently by checking the control byte at the pointer location if len(d.buffer) > int(pointer) { controlByte := d.buffer[pointer] if (controlByte >> 5) == 1 { // KindPointer = 1, stored in top 3 bits return 0, mmdberrors.NewInvalidDatabaseError( "invalid pointer to pointer at offset %d", pointer, ) } } _, err = d.decodeValue(pointer, result, depth) return newOffset, err } func (d *ReflectionDecoder) unmarshalSlice( size uint, offset uint, result addressableValue, depth int, ) (uint, error) { switch result.Kind() { case reflect.Slice: return d.decodeSlice(size, offset, result, depth) case reflect.Interface: if result.NumMethod() == 0 { a := []any{} // Create slice directly without makeAddressable wrapper sliceVal := reflect.ValueOf(&a).Elem() rv := addressableValue{Value: sliceVal, forcedAddr: false} newOffset, err := d.decodeSlice(size, offset, rv, depth) result.Set(rv.Value) return newOffset, err } default: // Fall through to error return } return 0, mmdberrors.NewUnmarshalTypeStrError("array", result.Type()) } func (d *ReflectionDecoder) unmarshalString( size, offset uint, result addressableValue, ) (uint, error) { value, newOffset, err := d.decodeString(size, offset) if err != nil { return 0, err } switch result.Kind() { case reflect.String: result.SetString(value) return newOffset, nil case reflect.Interface: if result.NumMethod() == 0 { result.Set(reflect.ValueOf(value)) return newOffset, nil } default: // Fall through to error return } return newOffset, mmdberrors.NewUnmarshalTypeError(value, result.Type()) } func (d *ReflectionDecoder) unmarshalUint( size, offset uint, result addressableValue, uintType uint, ) (uint, error) { // Use the appropriate DataDecoder method based on uint type var value uint64 var newOffset uint var err error switch uintType { case 16: v16, off, e := d.decodeUint16(size, offset) value, newOffset, err = uint64(v16), off, e case 32: v32, off, e := d.decodeUint32(size, offset) value, newOffset, err = uint64(v32), off, e case 64: value, newOffset, err = d.decodeUint64(size, offset) default: return 0, mmdberrors.NewInvalidDatabaseError( "unsupported uint type: %d", uintType) } if err != nil { return 0, err } // Fast path for exact type matches (inspired by json/v2 fast paths) switch result.Kind() { case reflect.Uint32: if uintType == 32 && value <= 0xFFFFFFFF { result.SetUint(value) return newOffset, nil } case reflect.Uint64: if uintType == 64 { result.SetUint(value) return newOffset, nil } case reflect.Uint16: if uintType == 16 && value <= 0xFFFF { result.SetUint(value) return newOffset, nil } case reflect.Uint8: if uintType == 16 && value <= 0xFF { // uint8 often stored as uint16 in MMDB result.SetUint(value) return newOffset, nil } default: // Fall through to general unmarshaling logic } switch result.Kind() { case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: n := int64(value) if !result.OverflowInt(n) { result.SetInt(n) return newOffset, nil } case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: if !result.OverflowUint(value) { result.SetUint(value) return newOffset, nil } case reflect.Interface: if result.NumMethod() == 0 { result.Set(reflect.ValueOf(value)) return newOffset, nil } default: // Fall through to error return } return newOffset, mmdberrors.NewUnmarshalTypeError(value, result.Type()) } var bigIntType = reflect.TypeOf(big.Int{}) func (d *ReflectionDecoder) unmarshalUint128( size, offset uint, result addressableValue, ) (uint, error) { hi, lo, newOffset, err := d.decodeUint128(size, offset) if err != nil { return 0, err } // Convert hi/lo representation to big.Int value := new(big.Int) if hi == 0 { value.SetUint64(lo) } else { value.SetUint64(hi) value.Lsh(value, 64) // Shift high part left by 64 bits value.Or(value, new(big.Int).SetUint64(lo)) // OR with low part } switch result.Kind() { case reflect.Struct: if result.Type() == bigIntType { result.Set(reflect.ValueOf(*value)) return newOffset, nil } case reflect.Interface: if result.NumMethod() == 0 { result.Set(reflect.ValueOf(value)) return newOffset, nil } default: // Fall through to error return } return newOffset, mmdberrors.NewUnmarshalTypeError(value, result.Type()) } func (d *ReflectionDecoder) decodeMap( size uint, offset uint, result addressableValue, depth int, ) (uint, error) { if result.IsNil() { result.Set(reflect.MakeMapWithSize(result.Type(), int(size))) } mapType := result.Type() // Pre-allocated values for efficient reuse keyVal := reflect.New(mapType.Key()).Elem() keyValue := addressableValue{Value: keyVal, forcedAddr: false} elemType := mapType.Elem() var elemValue addressableValue // Pre-allocate element value to reduce allocations elemVal := reflect.New(elemType).Elem() elemValue = addressableValue{Value: elemVal, forcedAddr: false} for range size { var err error // Reuse keyValue by zeroing it keyValue.SetZero() offset, err = d.decodeValue(offset, keyValue, depth) if err != nil { return 0, err } // Reuse elemValue by zeroing it elemValue.SetZero() offset, err = d.decodeValue(offset, elemValue, depth) if err != nil { return 0, d.wrapErrorWithMapKey(err, keyValue.String()) } result.SetMapIndex(keyValue.Value, elemValue.Value) } return offset, nil } func (d *ReflectionDecoder) decodeSlice( size uint, offset uint, result addressableValue, depth int, ) (uint, error) { result.Set(reflect.MakeSlice(result.Type(), int(size), int(size))) for i := range size { var err error // Use slice element directly to avoid allocation elemVal := result.Index(int(i)) elemValue := addressableValue{Value: elemVal, forcedAddr: false} offset, err = d.decodeValue(offset, elemValue, depth) if err != nil { return 0, d.wrapErrorWithSliceIndex(err, int(i)) } } return offset, nil } func (d *ReflectionDecoder) decodeStruct( size uint, offset uint, result addressableValue, depth int, ) (uint, error) { fields := cachedFields(result.Value) // Single-phase processing: decode only the dominant fields for range size { var ( err error key []byte ) key, offset, err = d.decodeKey(offset) if err != nil { return 0, err } // The string() does not create a copy due to this compiler // optimization: https://github.com/golang/go/issues/3512 fieldInfo, ok := fields.namedFields[string(key)] if !ok { offset, err = d.nextValueOffset(offset, 1) if err != nil { return 0, err } continue } // Use optimized field access with addressable value wrapper fieldValue := result.fieldByIndex(fieldInfo.index0, fieldInfo.index, true) if !fieldValue.IsValid() { // Field access failed, skip this field offset, err = d.nextValueOffset(offset, 1) if err != nil { return 0, err } continue } // Fast path for common simple field types if len(fieldInfo.index) == 0 && fieldInfo.isFastType { // Try fast decode path for pre-identified simple types if fastOffset, ok := d.tryFastDecodeTyped(offset, fieldValue, fieldInfo.fieldType); ok { offset = fastOffset continue } } offset, err = d.decodeValue(offset, fieldValue, depth) if err != nil { return 0, d.wrapErrorWithMapKey(err, string(key)) } } return offset, nil } type fieldInfo struct { fieldType reflect.Type name string index []int index0 int depth int hasTag bool isFastType bool } type fieldsType struct { namedFields map[string]*fieldInfo // Map from field name to field info } type queueEntry struct { typ reflect.Type index []int // Field index path depth int // Embedding depth } // getEmbeddedStructType returns the struct type for embedded fields. // Returns nil if the field is not an embeddable struct type. func getEmbeddedStructType(fieldType reflect.Type) reflect.Type { if fieldType.Kind() == reflect.Struct { return fieldType } if fieldType.Kind() == reflect.Ptr && fieldType.Elem().Kind() == reflect.Struct { return fieldType.Elem() } return nil } // handleEmbeddedField processes an embedded struct field and returns true if the field should be skipped. func handleEmbeddedField( field reflect.StructField, hasTag bool, queue *[]queueEntry, seen *map[reflect.Type]bool, fieldIndex []int, depth int, ) bool { embeddedType := getEmbeddedStructType(field.Type) if embeddedType == nil { return false } // For embedded structs (and pointer to structs), add to queue for further traversal if !(*seen)[embeddedType] { *queue = append(*queue, queueEntry{embeddedType, fieldIndex, depth + 1}) (*seen)[embeddedType] = true } // If embedded struct has no explicit tag, don't add it as a named field return !hasTag } // validateTag performs basic validation of maxminddb struct tags. func validateTag(field reflect.StructField, tag string) error { if tag == "" || tag == "-" { return nil } // Check for invalid UTF-8 if !utf8.ValidString(tag) { return fmt.Errorf("field %s has tag with invalid UTF-8: %q", field.Name, tag) } // Only flag very obvious mistakes - don't be too restrictive return nil } var fieldsMap sync.Map func cachedFields(result reflect.Value) *fieldsType { resultType := result.Type() if fields, ok := fieldsMap.Load(resultType); ok { return fields.(*fieldsType) } fields := makeStructFields(resultType) fieldsMap.Store(resultType, fields) return fields } // makeStructFields implements json/v2 style field precedence rules. func makeStructFields(rootType reflect.Type) *fieldsType { // Breadth-first traversal to collect all fields with depth information queue := []queueEntry{{rootType, nil, 0}} var allFields []fieldInfo seen := make(map[reflect.Type]bool) seen[rootType] = true // Collect all reachable fields using breadth-first search for len(queue) > 0 { entry := queue[0] queue = queue[1:] for i := range entry.typ.NumField() { field := entry.typ.Field(i) // Skip unexported fields (except embedded structs) if !field.IsExported() && (!field.Anonymous || field.Type.Kind() != reflect.Struct) { continue } // Build field index path fieldIndex := make([]int, len(entry.index)+1) copy(fieldIndex, entry.index) fieldIndex[len(entry.index)] = i // Parse maxminddb tag fieldName := field.Name hasTag := false if tag := field.Tag.Get("maxminddb"); tag != "" { // Validate tag syntax if err := validateTag(field, tag); err != nil { // Log warning but continue processing // In a real implementation, you might want to use a proper logger _ = err // For now, just ignore validation errors } if tag == "-" { continue // Skip ignored fields } fieldName = tag hasTag = true } // Handle embedded structs and embedded pointers to structs if field.Anonymous && handleEmbeddedField( field, hasTag, &queue, &seen, fieldIndex, entry.depth, ) { continue } // Add field to collection with optimization hints fieldType := field.Type isFast := isFastDecodeType(fieldType) allFields = append(allFields, fieldInfo{ index: fieldIndex, // Will be reindexed later for optimization name: fieldName, hasTag: hasTag, depth: entry.depth, fieldType: fieldType, isFastType: isFast, }) } } // Apply precedence rules to resolve field conflicts // Pre-size the map based on field count for better memory efficiency namedFields := make(map[string]*fieldInfo, len(allFields)) fieldsByName := make(map[string][]fieldInfo, len(allFields)) // Group fields by name for _, field := range allFields { fieldsByName[field.name] = append(fieldsByName[field.name], field) } // Apply precedence rules for each field name // Store results in a flattened slice to allow pointer references flatFields := make([]fieldInfo, 0, len(fieldsByName)) for name, fields := range fieldsByName { if len(fields) == 1 { // No conflict, use the field flatFields = append(flatFields, fields[0]) namedFields[name] = &flatFields[len(flatFields)-1] continue } // Find the dominant field using json/v2 precedence rules: // 1. Shallowest depth wins // 2. Among same depth, explicitly tagged field wins // 3. Among same depth with same tag status, first declared wins dominant := fields[0] for i := 1; i < len(fields); i++ { candidate := fields[i] // Shallowest depth wins if candidate.depth < dominant.depth { dominant = candidate continue } if candidate.depth > dominant.depth { continue } // Same depth: explicitly tagged field wins if candidate.hasTag && !dominant.hasTag { dominant = candidate continue } if !candidate.hasTag && dominant.hasTag { continue } // Same depth and tag status: first declared wins (keep current dominant) } flatFields = append(flatFields, dominant) namedFields[name] = &flatFields[len(flatFields)-1] } fields := &fieldsType{ namedFields: namedFields, } // Reindex all fields for optimized access fields.reindex() return fields } // reindex optimizes field indices to avoid bounds checks during runtime. // This follows the json/v2 pattern of splitting the first index from the remainder. func (fs *fieldsType) reindex() { for _, field := range fs.namedFields { if len(field.index) > 0 { field.index0 = field.index[0] field.index = field.index[1:] if len(field.index) == 0 { field.index = nil // avoid pinning the backing slice } } } } // addressableValue wraps a reflect.Value to optimize field access and // embedded pointer handling. Based on encoding/json/v2 patterns. type addressableValue struct { reflect.Value forcedAddr bool } // newAddressableValue creates an addressable value wrapper. // If the value is not addressable, it wraps it to make it addressable. func newAddressableValue(v reflect.Value) addressableValue { if v.CanAddr() { return addressableValue{Value: v, forcedAddr: false} } // Make non-addressable values addressable by boxing them addressable := reflect.New(v.Type()).Elem() addressable.Set(v) return addressableValue{Value: addressable, forcedAddr: true} } // makeAddressable efficiently converts a reflect.Value to addressableValue // with minimal allocations when possible. func makeAddressable(v reflect.Value) addressableValue { // Fast path for already addressable values if v.CanAddr() { return addressableValue{Value: v, forcedAddr: false} } return newAddressableValue(v) } // isFastDecodeType determines if a field type can use optimized decode paths. func isFastDecodeType(t reflect.Type) bool { switch t.Kind() { case reflect.String, reflect.Bool, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Float64: return true case reflect.Ptr: // Pointer to fast types are also fast return isFastDecodeType(t.Elem()) default: return false } } // fieldByIndex efficiently accesses a field by its index path, // initializing embedded pointers as needed. func (av addressableValue) fieldByIndex( index0 int, remainingIndex []int, mayAlloc bool, ) addressableValue { // First field access (optimized with no bounds check) av = addressableValue{av.Field(index0), av.forcedAddr} // Handle remaining indices if any if len(remainingIndex) > 0 { for _, i := range remainingIndex { av = av.indirect(mayAlloc) if !av.IsValid() { return av } av = addressableValue{av.Field(i), av.forcedAddr} } } return av } // indirect handles pointer dereferencing and initialization. func (av addressableValue) indirect(mayAlloc bool) addressableValue { if av.Kind() == reflect.Ptr { if av.IsNil() { if !mayAlloc || !av.CanSet() { return addressableValue{} // Return invalid value } av.Set(reflect.New(av.Type().Elem())) } av = addressableValue{av.Elem(), false} } return av } // tryFastDecodeTyped attempts to decode using pre-computed type information. func (d *ReflectionDecoder) tryFastDecodeTyped( offset uint, result addressableValue, expectedType reflect.Type, ) (uint, bool) { typeNum, size, newOffset, err := d.decodeCtrlData(offset) if err != nil { return 0, false } // Use pre-computed type information for faster matching switch expectedType.Kind() { case reflect.String: if typeNum == KindString { value, finalOffset, err := d.decodeString(size, newOffset) if err != nil { return 0, false } result.SetString(value) return finalOffset, true } case reflect.Uint32: if typeNum == KindUint32 { value, finalOffset, err := d.decodeUint32(size, newOffset) if err != nil { return 0, false } result.SetUint(uint64(value)) return finalOffset, true } case reflect.Uint16: if typeNum == KindUint16 { value, finalOffset, err := d.decodeUint16(size, newOffset) if err != nil { return 0, false } result.SetUint(uint64(value)) return finalOffset, true } case reflect.Uint64: if typeNum == KindUint64 { value, finalOffset, err := d.decodeUint64(size, newOffset) if err != nil { return 0, false } result.SetUint(value) return finalOffset, true } case reflect.Bool: if typeNum == KindBool { value, finalOffset, err := d.decodeBool(size, newOffset) if err != nil { return 0, false } result.SetBool(value) return finalOffset, true } case reflect.Float64: if typeNum == KindFloat64 { value, finalOffset, err := d.decodeFloat64(size, newOffset) if err != nil { return 0, false } result.SetFloat(value) return finalOffset, true } case reflect.Ptr: // Handle pointer to fast types if result.IsNil() { result.Set(reflect.New(expectedType.Elem())) } return d.tryFastDecodeTyped( offset, addressableValue{result.Elem(), false}, expectedType.Elem(), ) default: // Type not supported for fast path } return 0, false } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/reflection_test.go000066400000000000000000000145021507532544400305510ustar00rootroot00000000000000package decoder import ( "encoding/hex" "math/big" "os" "path/filepath" "reflect" "strings" "testing" "github.com/stretchr/testify/require" ) func TestBool(t *testing.T) { bools := map[string]any{ "0007": false, "0107": true, } validateDecoding(t, bools) } func TestDouble(t *testing.T) { doubles := map[string]any{ "680000000000000000": 0.0, "683FE0000000000000": 0.5, "68400921FB54442EEA": 3.14159265359, "68405EC00000000000": 123.0, "6841D000000007F8F4": 1073741824.12457, "68BFE0000000000000": -0.5, "68C00921FB54442EEA": -3.14159265359, "68C1D000000007F8F4": -1073741824.12457, } validateDecoding(t, doubles) } func TestFloat(t *testing.T) { floats := map[string]any{ "040800000000": float32(0.0), "04083F800000": float32(1.0), "04083F8CCCCD": float32(1.1), "04084048F5C3": float32(3.14), "0408461C3FF6": float32(9999.99), "0408BF800000": float32(-1.0), "0408BF8CCCCD": float32(-1.1), "0408C048F5C3": -float32(3.14), "0408C61C3FF6": float32(-9999.99), } validateDecoding(t, floats) } func TestInt32(t *testing.T) { int32s := map[string]any{ "0001": int32(0), "0401ffffffff": int32(-1), "0101ff": int32(255), "0401ffffff01": int32(-255), "020101f4": int32(500), "0401fffffe0c": int32(-500), "0201ffff": int32(65535), "0401ffff0001": int32(-65535), "0301ffffff": int32(16777215), "0401ff000001": int32(-16777215), "04017fffffff": int32(2147483647), "040180000001": int32(-2147483647), } validateDecoding(t, int32s) } func TestMap(t *testing.T) { maps := map[string]any{ "e0": map[string]any{}, "e142656e43466f6f": map[string]any{"en": "Foo"}, "e242656e43466f6f427a6843e4baba": map[string]any{"en": "Foo", "zh": "人"}, "e1446e616d65e242656e43466f6f427a6843e4baba": map[string]any{ "name": map[string]any{"en": "Foo", "zh": "人"}, }, "e1496c616e677561676573020442656e427a68": map[string]any{ "languages": []any{"en", "zh"}, }, } validateDecoding(t, maps) } func TestSlice(t *testing.T) { slice := map[string]any{ "0004": []any{}, "010443466f6f": []any{"Foo"}, "020443466f6f43e4baba": []any{"Foo", "人"}, } validateDecoding(t, slice) } var testStrings = makeTestStrings() func makeTestStrings() map[string]any { str := map[string]any{ "40": "", "4131": "1", "43E4BABA": "人", "5b313233343536373839303132333435363738393031323334353637": "123456789012345678901234567", "5c31323334353637383930313233343536373839303132333435363738": "1234567890123456789012345678", "5d003132333435363738393031323334353637383930313233343536373839": "12345678901234567890123456789", "5d01313233343536373839303132333435363738393031323334353637383930": "123456789012345678901234567890", } for k, v := range map[string]int{"5e00d7": 500, "5e06b3": 2000, "5f001053": 70000} { key := k + strings.Repeat("78", v) str[key] = strings.Repeat("x", v) } return str } func TestString(t *testing.T) { validateDecoding(t, testStrings) } func TestByte(t *testing.T) { b := make(map[string]any) for key, val := range testStrings { oldCtrl, err := hex.DecodeString(key[0:2]) require.NoError(t, err) newCtrl := []byte{oldCtrl[0] ^ 0xc0} key = strings.Replace(key, hex.EncodeToString(oldCtrl), hex.EncodeToString(newCtrl), 1) b[key] = []byte(val.(string)) } validateDecoding(t, b) } func TestUint16(t *testing.T) { uint16s := map[string]any{ "a0": uint64(0), "a1ff": uint64(255), "a201f4": uint64(500), "a22a78": uint64(10872), "a2ffff": uint64(65535), } validateDecoding(t, uint16s) } func TestUint32(t *testing.T) { uint32s := map[string]any{ "c0": uint64(0), "c1ff": uint64(255), "c201f4": uint64(500), "c22a78": uint64(10872), "c2ffff": uint64(65535), "c3ffffff": uint64(16777215), "c4ffffffff": uint64(4294967295), } validateDecoding(t, uint32s) } func TestUint64(t *testing.T) { ctrlByte := "02" bits := uint64(64) uints := map[string]any{ "00" + ctrlByte: uint64(0), "02" + ctrlByte + "01f4": uint64(500), "02" + ctrlByte + "2a78": uint64(10872), } for i := uint64(0); i <= bits/8; i++ { expected := uint64((1 << (8 * i)) - 1) input := hex.EncodeToString([]byte{byte(i)}) + ctrlByte + strings.Repeat("ff", int(i)) uints[input] = expected } validateDecoding(t, uints) } // Dedup with above somehow. func TestUint128(t *testing.T) { ctrlByte := "03" bits := uint(128) uints := map[string]any{ "00" + ctrlByte: big.NewInt(0), "02" + ctrlByte + "01f4": big.NewInt(500), "02" + ctrlByte + "2a78": big.NewInt(10872), } for i := uint(1); i <= bits/8; i++ { expected := powBigInt(big.NewInt(2), 8*i) expected = expected.Sub(expected, big.NewInt(1)) input := hex.EncodeToString([]byte{byte(i)}) + ctrlByte + strings.Repeat("ff", int(i)) uints[input] = expected } validateDecoding(t, uints) } // No pow or bit shifting for big int, apparently :-( // This is _not_ meant to be a comprehensive power function. func powBigInt(bi *big.Int, pow uint) *big.Int { newInt := big.NewInt(1) for range pow { newInt.Mul(newInt, bi) } return newInt } func validateDecoding(t *testing.T, tests map[string]any) { for inputStr, expected := range tests { inputBytes, err := hex.DecodeString(inputStr) require.NoError(t, err) d := New(inputBytes) var result any _, err = d.decode(0, reflect.ValueOf(&result), 0) require.NoError(t, err) if !reflect.DeepEqual(result, expected) { // A big case statement would produce nicer errors t.Errorf("Output was incorrect: %s %s", inputStr, expected) } } } func TestPointers(t *testing.T) { bytes, err := os.ReadFile(testFile("maps-with-pointers.raw")) require.NoError(t, err) d := New(bytes) expected := map[uint]map[string]string{ 0: {"long_key": "long_value1"}, 22: {"long_key": "long_value2"}, 37: {"long_key2": "long_value1"}, 50: {"long_key2": "long_value2"}, 55: {"long_key": "long_value1"}, 57: {"long_key2": "long_value2"}, } for offset, expectedValue := range expected { var actual map[string]string _, err := d.decode(offset, reflect.ValueOf(&actual), 0) require.NoError(t, err) if !reflect.DeepEqual(actual, expectedValue) { t.Errorf("Decode for pointer at %d failed", offset) } } } func testFile(file string) string { return filepath.Join("..", "..", "test-data", "test-data", file) } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/string_cache.go000066400000000000000000000031101507532544400300020ustar00rootroot00000000000000package decoder import ( "sync" ) // cacheEntry represents a cached string with its offset and dedicated mutex. type cacheEntry struct { str string offset uint mu sync.RWMutex } // stringCache provides bounded string interning with per-entry mutexes for minimal contention. // This achieves thread safety while avoiding the global lock bottleneck. type stringCache struct { entries [512]cacheEntry } // newStringCache creates a new per-entry mutex-based string cache. func newStringCache() *stringCache { return &stringCache{} } // internAt returns a canonical string for the data at the given offset and size. // Uses per-entry RWMutex for fine-grained thread safety with minimal contention. func (sc *stringCache) internAt(offset, size uint, data []byte) string { const ( minCachedLen = 2 // single byte strings not worth caching maxCachedLen = 100 // reasonable upper bound for geographic strings ) // Skip caching for very short or very long strings if size < minCachedLen || size > maxCachedLen { return string(data[offset : offset+size]) } // Use same cache index calculation as original: offset % cacheSize i := offset % uint(len(sc.entries)) entry := &sc.entries[i] // Fast path: read lock and check entry.mu.RLock() if entry.offset == offset && entry.str != "" { str := entry.str entry.mu.RUnlock() return str } entry.mu.RUnlock() // Cache miss - create new string str := string(data[offset : offset+size]) // Store with write lock on this specific entry entry.mu.Lock() entry.offset = offset entry.str = str entry.mu.Unlock() return str } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/string_cache_test.go000066400000000000000000000023261507532544400310510ustar00rootroot00000000000000package decoder import ( "testing" "github.com/stretchr/testify/require" ) func TestStringCacheOffsetZero(t *testing.T) { cache := newStringCache() data := []byte("hello world, this is test data") // Test string at offset 0 str1 := cache.internAt(0, 5, data) require.Equal(t, "hello", str1) // Second call should hit cache and return same interned string str2 := cache.internAt(0, 5, data) require.Equal(t, "hello", str2) // Note: Both strings should be identical (cache hit) // We can't easily test if they're the same object without unsafe, // but correctness is verified by the equal values } func TestStringCacheVariousOffsets(t *testing.T) { cache := newStringCache() data := []byte("abcdefghijklmnopqrstuvwxyz") testCases := []struct { offset uint size uint expected string }{ {0, 3, "abc"}, {5, 3, "fgh"}, {10, 5, "klmno"}, {23, 3, "xyz"}, } for _, tc := range testCases { // First call str1 := cache.internAt(tc.offset, tc.size, data) require.Equal(t, tc.expected, str1) // Second call should hit cache str2 := cache.internAt(tc.offset, tc.size, data) require.Equal(t, tc.expected, str2) // Verify cache hit returns correct value (interning tested via behavior) } } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/tag_validation_test.go000066400000000000000000000046331507532544400314100ustar00rootroot00000000000000package decoder import ( "reflect" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestValidateTag(t *testing.T) { tests := []struct { name string fieldName string tag string expectError bool description string }{ { name: "ValidTag", fieldName: "TestField", tag: "valid_field", expectError: false, description: "Valid tag should not error", }, { name: "IgnoreTag", fieldName: "TestField", tag: "-", expectError: false, description: "Ignore tag should not error", }, { name: "EmptyTag", fieldName: "TestField", tag: "", expectError: false, description: "Empty tag should not error", }, { name: "ComplexValidTag", fieldName: "TestField", tag: "some_complex_field_name_123", expectError: false, description: "Complex valid tag should not error", }, { name: "InvalidUTF8", fieldName: "TestField", tag: "field\xff\xfe", expectError: true, description: "Invalid UTF-8 should error", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { // Create a mock struct field field := reflect.StructField{ Name: tt.fieldName, Type: reflect.TypeOf(""), } err := validateTag(field, tt.tag) if tt.expectError { require.Error(t, err, tt.description) assert.Contains(t, err.Error(), tt.fieldName, "Error should mention field name") } else { assert.NoError(t, err, tt.description) } }) } } // TestTagValidationIntegration tests that tag validation works during field processing. func TestTagValidationIntegration(t *testing.T) { // Test that makeStructFields processes tags without panicking // even when there are validation errors type TestStruct struct { ValidField string `maxminddb:"valid"` IgnoredField string `maxminddb:"-"` NoTagField string } // This should not panic even with invalid tags structType := reflect.TypeOf(TestStruct{}) fields := makeStructFields(structType) // Verify that valid fields are still processed assert.Contains(t, fields.namedFields, "valid", "Valid field should be processed") assert.Contains(t, fields.namedFields, "NoTagField", "Field without tag should use field name") // The important thing is that it doesn't crash assert.NotNil(t, fields.namedFields, "Fields map should be created") } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/type_assert_go125.go000066400000000000000000000007731507532544400306440ustar00rootroot00000000000000//go:build go1.25 package decoder import ( "reflect" ) // tryTypeAssert attempts to type assert a reflect.Value to the Unmarshaler interface. // In Go 1.25+, this uses reflect.TypeAssert which avoids allocations compared to // the traditional Interface().(Type) approach. The value should be the address of the // struct since UnmarshalMaxMindDB implementations use pointer receivers. // //go:inline func tryTypeAssert(v reflect.Value) (Unmarshaler, bool) { return reflect.TypeAssert[Unmarshaler](v) } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/type_assert_pre125.go000066400000000000000000000007611507532544400310220ustar00rootroot00000000000000//go:build !go1.25 package decoder import ( "reflect" ) // tryTypeAssert attempts to type assert a reflect.Value to the Unmarshaler interface. // For Go versions before 1.25, this uses the traditional Interface().(Type) approach. // The value should be the address of the struct since UnmarshalMaxMindDB implementations // use pointer receivers. // //go:inline func tryTypeAssert(v reflect.Value) (Unmarshaler, bool) { unmarshaler, ok := v.Interface().(Unmarshaler) return unmarshaler, ok } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/decoder/verifier.go000066400000000000000000000026451507532544400272000ustar00rootroot00000000000000package decoder import ( "reflect" "github.com/oschwald/maxminddb-golang/v2/internal/mmdberrors" ) // VerifyDataSection verifies the data section against the provided // offsets from the tree. func (d *ReflectionDecoder) VerifyDataSection(offsets map[uint]bool) error { pointerCount := len(offsets) var offset uint bufferLen := uint(len(d.buffer)) for offset < bufferLen { var data any rv := reflect.ValueOf(&data) newOffset, err := d.decode(offset, rv, 0) if err != nil { return mmdberrors.NewInvalidDatabaseError( "received decoding error (%v) at offset of %v", err, offset, ) } if newOffset <= offset { return mmdberrors.NewInvalidDatabaseError( "data section offset unexpectedly went from %v to %v", offset, newOffset, ) } pointer := offset if _, ok := offsets[pointer]; !ok { return mmdberrors.NewInvalidDatabaseError( "found data (%v) at %v that the search tree does not point to", data, pointer, ) } delete(offsets, pointer) offset = newOffset } if offset != bufferLen { return mmdberrors.NewInvalidDatabaseError( "unexpected data at the end of the data section (last offset: %v, end: %v)", offset, bufferLen, ) } if len(offsets) != 0 { return mmdberrors.NewInvalidDatabaseError( "found %v pointers (of %v) in the search tree that we did not see in the data section", len(offsets), pointerCount, ) } return nil } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/mmdberrors/000077500000000000000000000000001507532544400255765ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/mmdberrors/context.go000066400000000000000000000071001507532544400276070ustar00rootroot00000000000000package mmdberrors import ( "fmt" "strconv" "strings" ) // ContextualError provides detailed error context with offset and path information. // This is only allocated when an error actually occurs, ensuring zero allocation // on the happy path. type ContextualError struct { Err error Path string Offset uint } func (e ContextualError) Error() string { if e.Path != "" { return fmt.Sprintf("at offset %d, path %s: %v", e.Offset, e.Path, e.Err) } return fmt.Sprintf("at offset %d: %v", e.Offset, e.Err) } func (e ContextualError) Unwrap() error { return e.Err } // ErrorContextTracker is an optional interface that can be used to track // path context for better error messages. Only used when explicitly enabled // and only allocates when an error occurs. type ErrorContextTracker interface { // BuildPath constructs a path string for the current decoder state. // This is only called when an error occurs, so allocation is acceptable. BuildPath() string } // WrapWithContext wraps an error with offset and optional path context. // This function is designed to have zero allocation on the happy path - // it only allocates when an error actually occurs. func WrapWithContext(err error, offset uint, tracker ErrorContextTracker) error { if err == nil { return nil // Zero allocation - no error to wrap } // Only allocate when we actually have an error ctxErr := ContextualError{ Offset: offset, Err: err, } // Only build path if tracker is provided (opt-in behavior) if tracker != nil { ctxErr.Path = tracker.BuildPath() } return ctxErr } // PathBuilder helps build JSON-pointer-like paths efficiently. // Only used when an error occurs, so allocations are acceptable here. type PathBuilder struct { segments []string } // NewPathBuilder creates a new path builder. func NewPathBuilder() *PathBuilder { return &PathBuilder{ segments: make([]string, 0, 8), // Pre-allocate for common depth } } // BuildPath implements ErrorContextTracker interface. func (p *PathBuilder) BuildPath() string { return p.Build() } // PushMap adds a map key to the path. func (p *PathBuilder) PushMap(key string) { p.segments = append(p.segments, key) } // PushSlice adds a slice index to the path. func (p *PathBuilder) PushSlice(index int) { p.segments = append(p.segments, strconv.Itoa(index)) } // PrependMap adds a map key to the beginning of the path (for retroactive building). func (p *PathBuilder) PrependMap(key string) { p.segments = append([]string{key}, p.segments...) } // PrependSlice adds a slice index to the beginning of the path (for retroactive building). func (p *PathBuilder) PrependSlice(index int) { p.segments = append([]string{strconv.Itoa(index)}, p.segments...) } // Pop removes the last segment from the path. func (p *PathBuilder) Pop() { if len(p.segments) > 0 { p.segments = p.segments[:len(p.segments)-1] } } // Build constructs the full path string. func (p *PathBuilder) Build() string { if len(p.segments) == 0 { return "/" } return "/" + strings.Join(p.segments, "/") } // Reset clears all segments for reuse. func (p *PathBuilder) Reset() { p.segments = p.segments[:0] } // ParseAndExtend parses an existing path and extends this builder with those segments. // This is used for retroactive path building during error unwinding. func (p *PathBuilder) ParseAndExtend(path string) { if path == "" || path == "/" { return } // Remove leading slash and split if path[0] == '/' { path = path[1:] } segments := strings.Split(path, "/") for _, segment := range segments { if segment != "" { p.segments = append(p.segments, segment) } } } golang-github-oschwald-maxminddb-golang-v2-2.0.0/internal/mmdberrors/errors.go000066400000000000000000000032521507532544400274430ustar00rootroot00000000000000// Package mmdberrors is an internal package for the errors used in // this module. package mmdberrors import ( "fmt" "reflect" ) // InvalidDatabaseError is returned when the database contains invalid data // and cannot be parsed. type InvalidDatabaseError struct { message string } // NewOffsetError creates an [InvalidDatabaseError] indicating that an offset // pointed beyond the end of the database. func NewOffsetError() InvalidDatabaseError { return InvalidDatabaseError{"unexpected end of database"} } // NewInvalidDatabaseError creates an [InvalidDatabaseError] using the // provided format and format arguments. func NewInvalidDatabaseError(format string, args ...any) InvalidDatabaseError { return InvalidDatabaseError{fmt.Sprintf(format, args...)} } func (e InvalidDatabaseError) Error() string { return e.message } // UnmarshalTypeError is returned when the value in the database cannot be // assigned to the specified data type. type UnmarshalTypeError struct { Type reflect.Type Value string } // NewUnmarshalTypeStrError creates an [UnmarshalTypeError] when the string // value cannot be assigned to a value of rType. func NewUnmarshalTypeStrError(value string, rType reflect.Type) UnmarshalTypeError { return UnmarshalTypeError{ Type: rType, Value: value, } } // NewUnmarshalTypeError creates an [UnmarshalTypeError] when the value // cannot be assigned to a value of rType. func NewUnmarshalTypeError(value any, rType reflect.Type) UnmarshalTypeError { return NewUnmarshalTypeStrError(fmt.Sprintf("%v (%T)", value, value), rType) } func (e UnmarshalTypeError) Error() string { return fmt.Sprintf("maxminddb: cannot unmarshal %s into type %s", e.Value, e.Type) } golang-github-oschwald-maxminddb-golang-v2-2.0.0/mmap_stub.go000066400000000000000000000007371507532544400241330ustar00rootroot00000000000000//go:build appengine || plan9 || js || wasip1 || wasi package maxminddb import ( "errors" ) type mmapUnsupportedError struct{} func (mmapUnsupportedError) Error() string { return "mmap is not supported on this platform" } func (mmapUnsupportedError) Is(target error) bool { return target == errors.ErrUnsupported } func mmap(_, _ int) (data []byte, err error) { return nil, mmapUnsupportedError{} } func munmap(_ []byte) (err error) { return mmapUnsupportedError{} } golang-github-oschwald-maxminddb-golang-v2-2.0.0/mmap_unix.go000066400000000000000000000014561507532544400241400ustar00rootroot00000000000000//go:build !windows && !appengine && !plan9 && !js && !wasip1 && !wasi package maxminddb import ( "errors" "os" "golang.org/x/sys/unix" ) type mmapENODEVError struct{} func (mmapENODEVError) Error() string { return "mmap: the underlying filesystem of the specified file does not support memory mapping" } func (mmapENODEVError) Is(target error) bool { return target == errors.ErrUnsupported } func mmap(fd, length int) (data []byte, err error) { data, err = unix.Mmap(fd, 0, length, unix.PROT_READ, unix.MAP_SHARED) if err != nil { if err == unix.ENODEV { return nil, mmapENODEVError{} } return nil, os.NewSyscallError("mmap", err) } return data, nil } func munmap(b []byte) (err error) { if err = unix.Munmap(b); err != nil { return os.NewSyscallError("munmap", err) } return nil } golang-github-oschwald-maxminddb-golang-v2-2.0.0/mmap_windows.go000066400000000000000000000034601507532544400246440ustar00rootroot00000000000000//go:build windows && !appengine // +build windows,!appengine package maxminddb import ( "errors" "os" "unsafe" "golang.org/x/sys/windows" ) // mmap maps a file into memory and returns a byte slice. func mmap(fd, length int) ([]byte, error) { // Create a file mapping handle, err := windows.CreateFileMapping( windows.Handle(fd), nil, windows.PAGE_READONLY, 0, 0, nil, ) if err != nil { return nil, os.NewSyscallError("CreateFileMapping", err) } defer windows.CloseHandle(handle) // Map the file into memory addrUintptr, err := windows.MapViewOfFile( handle, windows.FILE_MAP_READ, 0, 0, 0, ) if err != nil { return nil, os.NewSyscallError("MapViewOfFile", err) } // When there's not enough address space for the whole file (e.g. large // files on 32-bit systems), MapViewOfFile may return a partial mapping. // Query the region size and fail on partial mappings. var info windows.MemoryBasicInformation if err := windows.VirtualQuery(addrUintptr, &info, unsafe.Sizeof(info)); err != nil { _ = windows.UnmapViewOfFile(addrUintptr) return nil, os.NewSyscallError("VirtualQuery", err) } if info.RegionSize < uintptr(length) { _ = windows.UnmapViewOfFile(addrUintptr) return nil, errors.New("file too large") } // Workaround for unsafeptr check in go vet, see // https://github.com/golang/go/issues/58625 addr := *(*unsafe.Pointer)(unsafe.Pointer(&addrUintptr)) return unsafe.Slice((*byte)(addr), length), nil } // munmap unmaps a memory-mapped file and releases associated resources. func munmap(b []byte) error { // Convert slice to base address and length data := unsafe.SliceData(b) addr := uintptr(unsafe.Pointer(data)) // Unmap the memory if err := windows.UnmapViewOfFile(addr); err != nil { return os.NewSyscallError("UnmapViewOfFile", err) } return nil } golang-github-oschwald-maxminddb-golang-v2-2.0.0/mmdbdata/000077500000000000000000000000001507532544400233575ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/mmdbdata/doc.go000066400000000000000000000035361507532544400244620ustar00rootroot00000000000000// Package mmdbdata provides low-level types and interfaces for custom MaxMind DB decoding. // // This package allows custom decoding logic for applications that need fine-grained // control over how MaxMind DB data is processed. For most use cases, the high-level // maxminddb.Reader API is recommended instead. // // # Manual Decoding Example // // Custom types can implement the Unmarshaler interface for custom decoding: // // type City struct { // Names map[string]string `maxminddb:"names"` // GeoNameID uint `maxminddb:"geoname_id"` // } // // func (c *City) UnmarshalMaxMindDB(d *mmdbdata.Decoder) error { // mapIter, _, err := d.ReadMap() // if err != nil { return err } // for key, err := range mapIter { // if err != nil { return err } // switch string(key) { // case "names": // nameIter, size, err := d.ReadMap() // if err != nil { return err } // names := make(map[string]string, size) // Pre-allocate with size // for nameKey, nameErr := range nameIter { // if nameErr != nil { return nameErr } // value, valueErr := d.ReadString() // if valueErr != nil { return valueErr } // names[string(nameKey)] = value // } // c.Names = names // case "geoname_id": // geoID, err := d.ReadUint32() // if err != nil { return err } // c.GeoNameID = uint(geoID) // default: // if err := d.SkipValue(); err != nil { return err } // } // } // return nil // } // // Types implementing Unmarshaler will automatically use custom decoding logic // instead of reflection when used with maxminddb.Reader.Lookup, similar to how // json.Unmarshaler works with encoding/json. // // # Direct Decoder Usage // // For even more control, you can use the Decoder directly: // // decoder := mmdbdata.NewDecoder(buffer, offset) // value, err := decoder.ReadString() // if err != nil { // return err // } package mmdbdata golang-github-oschwald-maxminddb-golang-v2-2.0.0/mmdbdata/interface.go000066400000000000000000000004011507532544400256410ustar00rootroot00000000000000package mmdbdata // Unmarshaler is implemented by types that can unmarshal MaxMind DB data. // This follows the same pattern as json.Unmarshaler and other Go standard library interfaces. type Unmarshaler interface { UnmarshalMaxMindDB(d *Decoder) error } golang-github-oschwald-maxminddb-golang-v2-2.0.0/mmdbdata/type.go000066400000000000000000000024771507532544400247010ustar00rootroot00000000000000package mmdbdata import "github.com/oschwald/maxminddb-golang/v2/internal/decoder" // Kind represents MMDB data kinds. type Kind = decoder.Kind // Decoder provides methods for decoding MMDB data. type Decoder = decoder.Decoder // DecoderOption configures a Decoder. type DecoderOption = decoder.DecoderOption // NewDecoder creates a new Decoder with the given buffer, offset, and options. // Error messages automatically include contextual information like offset and // path (e.g., "/city/names/en") with zero impact on successful operations. func NewDecoder(buffer []byte, offset uint, options ...DecoderOption) *Decoder { d := decoder.NewDataDecoder(buffer) return decoder.NewDecoder(d, offset, options...) } // Kind constants for MMDB data. const ( KindExtended = decoder.KindExtended KindPointer = decoder.KindPointer KindString = decoder.KindString KindFloat64 = decoder.KindFloat64 KindBytes = decoder.KindBytes KindUint16 = decoder.KindUint16 KindUint32 = decoder.KindUint32 KindMap = decoder.KindMap KindInt32 = decoder.KindInt32 KindUint64 = decoder.KindUint64 KindUint128 = decoder.KindUint128 KindSlice = decoder.KindSlice KindContainer = decoder.KindContainer KindEndMarker = decoder.KindEndMarker KindBool = decoder.KindBool KindFloat32 = decoder.KindFloat32 ) golang-github-oschwald-maxminddb-golang-v2-2.0.0/reader.go000066400000000000000000000505271507532544400234100ustar00rootroot00000000000000// Package maxminddb provides a reader for the MaxMind DB file format. // // This package provides an API for reading MaxMind GeoIP2 and GeoLite2 // databases in the MaxMind DB file format (.mmdb files). The API is designed // to be simple to use while providing high performance for IP geolocation // lookups and related data. // // # Basic Usage // // The most common use case is looking up geolocation data for an IP address: // // db, err := maxminddb.Open("GeoLite2-City.mmdb") // if err != nil { // log.Fatal(err) // } // defer db.Close() // // ip, err := netip.ParseAddr("81.2.69.142") // if err != nil { // log.Fatal(err) // } // // var record struct { // Country struct { // ISOCode string `maxminddb:"iso_code"` // Names map[string]string `maxminddb:"names"` // } `maxminddb:"country"` // City struct { // Names map[string]string `maxminddb:"names"` // } `maxminddb:"city"` // } // // err = db.Lookup(ip).Decode(&record) // if err != nil { // log.Fatal(err) // } // // fmt.Printf("Country: %s\n", record.Country.Names["en"]) // fmt.Printf("City: %s\n", record.City.Names["en"]) // // # Database Types // // This library supports all MaxMind database types: // - GeoLite2/GeoIP2 City: Comprehensive location data including city, country, subdivisions // - GeoLite2/GeoIP2 Country: Country-level geolocation data // - GeoLite2 ASN: Autonomous System Number and organization data // - GeoIP2 Anonymous IP: Anonymous network and proxy detection // - GeoIP2 Enterprise: Enhanced City data with additional business fields // - GeoIP2 ISP: Internet service provider information // - GeoIP2 Domain: Second-level domain data // - GeoIP2 Connection Type: Connection type identification // // # Performance // // For maximum performance in high-throughput applications, consider: // // 1. Using custom struct types that only include the fields you need // 2. Implementing the Unmarshaler interface for custom decoding // 3. Reusing the Reader instance across multiple goroutines (it's thread-safe) // // # Custom Unmarshaling // // For custom decoding logic, you can implement the mmdbdata.Unmarshaler interface, // similar to how encoding/json's json.Unmarshaler works. Types implementing this // interface will automatically use custom decoding logic when used with Reader.Lookup: // // type FastCity struct { // CountryISO string // CityName string // } // // func (c *FastCity) UnmarshalMaxMindDB(d *mmdbdata.Decoder) error { // // Custom decoding logic using d.ReadMap(), d.ReadString(), etc. // // Allows fine-grained control over how MaxMind DB data is decoded // // See mmdbdata package documentation and ExampleUnmarshaler for complete examples // } // // # Network Iteration // // You can iterate over all networks in a database: // // for result := range db.Networks() { // var record struct { // Country struct { // ISOCode string `maxminddb:"iso_code"` // } `maxminddb:"country"` // } // err := result.Decode(&record) // if err != nil { // log.Fatal(err) // } // fmt.Printf("%s: %s\n", result.Prefix(), record.Country.ISOCode) // } // // # Database Files // // MaxMind provides both free (GeoLite2) and commercial (GeoIP2) databases: // - Free: https://dev.maxmind.com/geoip/geolite2-free-geolocation-data // - Commercial: https://www.maxmind.com/en/geoip2-databases // // # Thread Safety // // All Reader methods are thread-safe. The Reader can be safely shared across // multiple goroutines. package maxminddb import ( "bytes" "errors" "fmt" "io" "net/netip" "os" "runtime" "sync/atomic" "time" "github.com/oschwald/maxminddb-golang/v2/internal/decoder" "github.com/oschwald/maxminddb-golang/v2/internal/mmdberrors" ) const dataSectionSeparatorSize = 16 var metadataStartMarker = []byte("\xAB\xCD\xEFMaxMind.com") // mmapCleanup holds the data needed to safely cleanup memory-mapped files. type mmapCleanup struct { hasMapped *atomic.Bool data []byte } // Reader holds the data corresponding to the MaxMind DB file. Its only public // field is Metadata, which contains the metadata from the MaxMind DB file. // // All of the methods on Reader are thread-safe. The struct may be safely // shared across goroutines. type Reader struct { buffer []byte decoder decoder.ReflectionDecoder Metadata Metadata ipv4Start uint ipv4StartBitDepth int nodeOffsetMult uint hasMappedFile atomic.Bool } // Metadata holds the metadata decoded from the MaxMind DB file. // // Key fields include: // - DatabaseType: indicates the structure of data records (e.g., "GeoIP2-City") // - Description: localized descriptions in various languages // - Languages: locale codes for which the database may contain localized data // - BuildEpoch: database build timestamp as Unix epoch seconds // - IPVersion: supported IP version (4 for IPv4-only, 6 for IPv4/IPv6) // - NodeCount: number of nodes in the search tree // - RecordSize: size in bits of each record in the search tree (24, 28, or 32) // // For detailed field descriptions, see the MaxMind DB specification: // https://maxmind.github.io/MaxMind-DB/ type Metadata struct { // Description contains localized database descriptions. // Keys are language codes (e.g., "en", "zh-CN"), values are UTF-8 descriptions. Description map[string]string `maxminddb:"description"` // DatabaseType indicates the structure of data records associated with IP addresses. // Names starting with "GeoIP" are reserved for MaxMind databases. DatabaseType string `maxminddb:"database_type"` // Languages lists locale codes for which this database may contain localized data. // Records should not contain localized data for locales not in this array. Languages []string `maxminddb:"languages"` // BinaryFormatMajorVersion is the major version of the MaxMind DB binary format. // Current supported version is 2. BinaryFormatMajorVersion uint `maxminddb:"binary_format_major_version"` // BinaryFormatMinorVersion is the minor version of the MaxMind DB binary format. // Current supported version is 0. BinaryFormatMinorVersion uint `maxminddb:"binary_format_minor_version"` // BuildEpoch contains the database build timestamp as Unix epoch seconds. // Use BuildTime() method for a time.Time representation. BuildEpoch uint `maxminddb:"build_epoch"` // IPVersion indicates the IP version support: // 4: IPv4 addresses only // 6: Both IPv4 and IPv6 addresses IPVersion uint `maxminddb:"ip_version"` // NodeCount is the number of nodes in the search tree. NodeCount uint `maxminddb:"node_count"` // RecordSize is the size in bits of each record in the search tree. // Valid values are 24, 28, or 32. RecordSize uint `maxminddb:"record_size"` } // BuildTime returns the database build time as a time.Time. // This is a convenience method that converts the BuildEpoch field // from Unix epoch seconds to a time.Time value. func (m Metadata) BuildTime() time.Time { return time.Unix(int64(m.BuildEpoch), 0) } type readerOptions struct{} // ReaderOption are options for [Open] and [OpenBytes]. // // This was added to allow for future options, e.g., for caching, without // causing a breaking API change. type ReaderOption func(*readerOptions) // Open takes a string path to a MaxMind DB file and any options. It returns a // Reader structure or an error. The database file is opened using a memory // map on supported platforms. On platforms without memory map support, such // as WebAssembly or Google App Engine, or if the memory map attempt fails // due to lack of support from the filesystem, the database is loaded into memory. // Use the Close method on the Reader object to return the resources to the system. func Open(file string, options ...ReaderOption) (*Reader, error) { mapFile, err := os.Open(file) if err != nil { return nil, err } defer mapFile.Close() //nolint:errcheck // error is generally not relevant stats, err := mapFile.Stat() if err != nil { return nil, err } size64 := stats.Size() // mmapping an empty file returns -EINVAL on Unix platforms, // and ERROR_FILE_INVALID on Windows. if size64 == 0 { return nil, errors.New("file is empty") } size := int(size64) // Check for overflow. if int64(size) != size64 { return nil, errors.New("file too large") } data, err := openMmap(mapFile, size) if err != nil { if errors.Is(err, errors.ErrUnsupported) { data, err = openFallback(mapFile, size) if err != nil { return nil, err } return OpenBytes(data, options...) } return nil, err } reader, err := OpenBytes(data, options...) if err != nil { _ = munmap(data) return nil, err } reader.hasMappedFile.Store(true) cleanup := &mmapCleanup{ data: data, hasMapped: &reader.hasMappedFile, } runtime.AddCleanup(reader, func(mc *mmapCleanup) { if mc.hasMapped.CompareAndSwap(true, false) { _ = munmap(mc.data) } }, cleanup) return reader, nil } func openMmap(f *os.File, size int) (data []byte, err error) { rawConn, err := f.SyscallConn() if err != nil { return nil, err } if cerr := rawConn.Control(func(fd uintptr) { data, err = mmap(int(fd), size) }); cerr != nil { return nil, cerr } return data, err } func openFallback(f *os.File, size int) (data []byte, err error) { data = make([]byte, size) _, err = io.ReadFull(f, data) return data, err } // Close returns the resources used by the database to the system. func (r *Reader) Close() error { var err error if r.hasMappedFile.CompareAndSwap(true, false) { err = munmap(r.buffer) } r.buffer = nil return err } // OpenBytes takes a byte slice corresponding to a MaxMind DB file and any // options. It returns a Reader structure or an error. func OpenBytes(buffer []byte, options ...ReaderOption) (*Reader, error) { opts := &readerOptions{} for _, option := range options { option(opts) } metadataStart := bytes.LastIndex(buffer, metadataStartMarker) if metadataStart == -1 { return nil, mmdberrors.NewInvalidDatabaseError( "error opening database: invalid MaxMind DB file", ) } metadataStart += len(metadataStartMarker) metadataDecoder := decoder.New(buffer[metadataStart:]) var metadata Metadata err := metadataDecoder.Decode(0, &metadata) if err != nil { return nil, err } // Check for integer overflow in search tree size calculation if metadata.NodeCount > 0 && metadata.RecordSize > 0 { recordSizeQuarter := metadata.RecordSize / 4 if recordSizeQuarter > 0 { maxNodes := ^uint(0) / recordSizeQuarter if metadata.NodeCount > maxNodes { return nil, mmdberrors.NewInvalidDatabaseError("database tree size would overflow") } } } searchTreeSize := metadata.NodeCount * (metadata.RecordSize / 4) dataSectionStart := searchTreeSize + dataSectionSeparatorSize dataSectionEnd := uint(metadataStart - len(metadataStartMarker)) if dataSectionStart > dataSectionEnd { return nil, mmdberrors.NewInvalidDatabaseError("the MaxMind DB contains invalid metadata") } d := decoder.New( buffer[searchTreeSize+dataSectionSeparatorSize : metadataStart-len(metadataStartMarker)], ) reader := &Reader{ buffer: buffer, decoder: d, Metadata: metadata, ipv4Start: 0, nodeOffsetMult: metadata.RecordSize / 4, } err = reader.setIPv4Start() if err != nil { return nil, err } return reader, nil } // Lookup retrieves the database record for ip and returns a Result, which can // be used to decode the data. func (r *Reader) Lookup(ip netip.Addr) Result { if r.buffer == nil { return Result{err: errors.New("cannot call Lookup on a closed database")} } pointer, prefixLen, err := r.lookupPointer(ip) if err != nil { return Result{ ip: ip, prefixLen: uint8(prefixLen), err: err, } } if pointer == 0 { return Result{ ip: ip, prefixLen: uint8(prefixLen), offset: notFound, } } offset, err := r.resolveDataPointer(pointer) return Result{ reader: r, ip: ip, offset: uint(offset), prefixLen: uint8(prefixLen), err: err, } } // LookupOffset returns the Result for the specified offset. Note that // netip.Prefix returned by Networks will be invalid when using LookupOffset. func (r *Reader) LookupOffset(offset uintptr) Result { if r.buffer == nil { return Result{err: errors.New("cannot call LookupOffset on a closed database")} } return Result{reader: r, offset: uint(offset)} } func (r *Reader) setIPv4Start() error { if r.Metadata.IPVersion != 6 { r.ipv4StartBitDepth = 96 return nil } nodeCount := r.Metadata.NodeCount node := uint(0) i := 0 for ; i < 96 && node < nodeCount; i++ { var err error node, err = readNodeBySize(r.buffer, node*r.nodeOffsetMult, 0, r.Metadata.RecordSize) if err != nil { return err } } r.ipv4Start = node r.ipv4StartBitDepth = i return nil } var zeroIP = netip.MustParseAddr("::") func (r *Reader) lookupPointer(ip netip.Addr) (uint, int, error) { if r.Metadata.IPVersion == 4 && ip.Is6() { return 0, 0, fmt.Errorf( "error looking up '%s': you attempted to look up an IPv6 address in an IPv4-only database", ip.String(), ) } node, prefixLength, err := r.traverseTree(ip, 0, 128) if err != nil { return 0, 0, err } nodeCount := r.Metadata.NodeCount if node == nodeCount { // Record is empty return 0, prefixLength, nil } else if node > nodeCount { return node, prefixLength, nil } return 0, prefixLength, mmdberrors.NewInvalidDatabaseError("invalid node in search tree") } // readNodeBySize reads a node value from the buffer based on record size and bit. func readNodeBySize(buffer []byte, offset, bit, recordSize uint) (uint, error) { bufferLen := uint(len(buffer)) switch recordSize { case 24: offset += bit * 3 if offset > bufferLen-3 { return 0, mmdberrors.NewInvalidDatabaseError( "bounds check failed: insufficient buffer for 24-bit node read", ) } return (uint(buffer[offset]) << 16) | (uint(buffer[offset+1]) << 8) | uint(buffer[offset+2]), nil case 28: if bit == 0 { if offset > bufferLen-4 { return 0, mmdberrors.NewInvalidDatabaseError( "bounds check failed: insufficient buffer for 28-bit node read", ) } return ((uint(buffer[offset+3]) & 0xF0) << 20) | (uint(buffer[offset]) << 16) | (uint(buffer[offset+1]) << 8) | uint(buffer[offset+2]), nil } if offset > bufferLen-7 { return 0, mmdberrors.NewInvalidDatabaseError( "bounds check failed: insufficient buffer for 28-bit node read", ) } return ((uint(buffer[offset+3]) & 0x0F) << 24) | (uint(buffer[offset+4]) << 16) | (uint(buffer[offset+5]) << 8) | uint(buffer[offset+6]), nil case 32: offset += bit * 4 if offset > bufferLen-4 { return 0, mmdberrors.NewInvalidDatabaseError( "bounds check failed: insufficient buffer for 32-bit node read", ) } return (uint(buffer[offset]) << 24) | (uint(buffer[offset+1]) << 16) | (uint(buffer[offset+2]) << 8) | uint(buffer[offset+3]), nil default: return 0, mmdberrors.NewInvalidDatabaseError("unsupported record size") } } // readNodePairBySize reads both left (bit=0) and right (bit=1) child pointers // for a node at the given base offset according to the record size. This reduces // duplicate bound checks and byte fetches when both children are needed. func readNodePairBySize(buffer []byte, baseOffset, recordSize uint) (left, right uint, err error) { bufferLen := uint(len(buffer)) switch recordSize { case 24: // Each child is 3 bytes; total 6 bytes starting at baseOffset if baseOffset > bufferLen-6 { return 0, 0, mmdberrors.NewInvalidDatabaseError( "bounds check failed: insufficient buffer for 24-bit node pair read", ) } o := baseOffset left = (uint(buffer[o]) << 16) | (uint(buffer[o+1]) << 8) | uint(buffer[o+2]) o += 3 right = (uint(buffer[o]) << 16) | (uint(buffer[o+1]) << 8) | uint(buffer[o+2]) return left, right, nil case 28: // Left uses high nibble of shared byte, right uses low nibble. // Layout: [A B C S][D E F] where S provides 4 shared bits for each child if baseOffset > bufferLen-7 { return 0, 0, mmdberrors.NewInvalidDatabaseError( "bounds check failed: insufficient buffer for 28-bit node pair read", ) } // Left child (bit=0): uses high nibble of shared byte shared := uint(buffer[baseOffset+3]) left = ((shared & 0xF0) << 20) | (uint(buffer[baseOffset]) << 16) | (uint(buffer[baseOffset+1]) << 8) | uint(buffer[baseOffset+2]) // Right child (bit=1): uses low nibble of shared byte, next 3 bytes right = ((shared & 0x0F) << 24) | (uint(buffer[baseOffset+4]) << 16) | (uint(buffer[baseOffset+5]) << 8) | uint(buffer[baseOffset+6]) return left, right, nil case 32: // Each child is 4 bytes; total 8 bytes if baseOffset > bufferLen-8 { return 0, 0, mmdberrors.NewInvalidDatabaseError( "bounds check failed: insufficient buffer for 32-bit node pair read", ) } o := baseOffset left = (uint(buffer[o]) << 24) | (uint(buffer[o+1]) << 16) | (uint(buffer[o+2]) << 8) | uint(buffer[o+3]) o += 4 right = (uint(buffer[o]) << 24) | (uint(buffer[o+1]) << 16) | (uint(buffer[o+2]) << 8) | uint(buffer[o+3]) return left, right, nil default: return 0, 0, mmdberrors.NewInvalidDatabaseError("unsupported record size") } } func (r *Reader) traverseTree(ip netip.Addr, node uint, stopBit int) (uint, int, error) { switch r.Metadata.RecordSize { case 24: return r.traverseTree24(ip, node, stopBit) case 28: return r.traverseTree28(ip, node, stopBit) case 32: return r.traverseTree32(ip, node, stopBit) default: return 0, 0, mmdberrors.NewInvalidDatabaseError( "unsupported record size: %d", r.Metadata.RecordSize, ) } } func (r *Reader) traverseTree24(ip netip.Addr, node uint, stopBit int) (uint, int, error) { i := 0 if ip.Is4() { i = r.ipv4StartBitDepth node = r.ipv4Start } nodeCount := r.Metadata.NodeCount buffer := r.buffer bufferLen := uint(len(buffer)) ip16 := ip.As16() for ; i < stopBit && node < nodeCount; i++ { byteIdx := i >> 3 bitPos := 7 - (i & 7) bit := (uint(ip16[byteIdx]) >> bitPos) & 1 baseOffset := node * 6 offset := baseOffset + bit*3 if offset > bufferLen-3 { return 0, 0, mmdberrors.NewInvalidDatabaseError( "bounds check failed during tree traversal", ) } node = (uint(buffer[offset]) << 16) | (uint(buffer[offset+1]) << 8) | uint(buffer[offset+2]) } return node, i, nil } func (r *Reader) traverseTree28(ip netip.Addr, node uint, stopBit int) (uint, int, error) { i := 0 if ip.Is4() { i = r.ipv4StartBitDepth node = r.ipv4Start } nodeCount := r.Metadata.NodeCount buffer := r.buffer bufferLen := uint(len(buffer)) ip16 := ip.As16() for ; i < stopBit && node < nodeCount; i++ { byteIdx := i >> 3 bitPos := 7 - (i & 7) bit := (uint(ip16[byteIdx]) >> bitPos) & 1 baseOffset := node * 7 offset := baseOffset + bit*4 if baseOffset > bufferLen-4 || offset > bufferLen-3 { return 0, 0, mmdberrors.NewInvalidDatabaseError( "bounds check failed during tree traversal", ) } sharedByte := uint(buffer[baseOffset+3]) mask := uint(0xF0 >> (bit * 4)) shift := 20 + bit*4 nibble := ((sharedByte & mask) << shift) node = nibble | (uint(buffer[offset]) << 16) | (uint(buffer[offset+1]) << 8) | uint(buffer[offset+2]) } return node, i, nil } func (r *Reader) traverseTree32(ip netip.Addr, node uint, stopBit int) (uint, int, error) { i := 0 if ip.Is4() { i = r.ipv4StartBitDepth node = r.ipv4Start } nodeCount := r.Metadata.NodeCount buffer := r.buffer bufferLen := uint(len(buffer)) ip16 := ip.As16() for ; i < stopBit && node < nodeCount; i++ { byteIdx := i >> 3 bitPos := 7 - (i & 7) bit := (uint(ip16[byteIdx]) >> bitPos) & 1 baseOffset := node * 8 offset := baseOffset + bit*4 if offset > bufferLen-4 { return 0, 0, mmdberrors.NewInvalidDatabaseError( "bounds check failed during tree traversal", ) } node = (uint(buffer[offset]) << 24) | (uint(buffer[offset+1]) << 16) | (uint(buffer[offset+2]) << 8) | uint(buffer[offset+3]) } return node, i, nil } func (r *Reader) resolveDataPointer(pointer uint) (uintptr, error) { // Check for integer underflow: pointer must be greater than nodeCount + separator minPointer := r.Metadata.NodeCount + dataSectionSeparatorSize if pointer >= minPointer { resolved := uintptr(pointer - minPointer) bufferLen := uintptr(len(r.buffer)) if resolved < bufferLen { return resolved, nil } // Error case - bounds exceeded return 0, mmdberrors.NewInvalidDatabaseError("the MaxMind DB file's search tree is corrupt") } // Error case - underflow return 0, mmdberrors.NewInvalidDatabaseError("the MaxMind DB file's search tree is corrupt") } golang-github-oschwald-maxminddb-golang-v2-2.0.0/reader_test.go000066400000000000000000001146541507532544400244510ustar00rootroot00000000000000package maxminddb import ( "errors" "fmt" "math/big" "math/rand" "net" "net/netip" "os" "path/filepath" "sync" "testing" "time" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/oschwald/maxminddb-golang/v2/internal/mmdberrors" "github.com/oschwald/maxminddb-golang/v2/mmdbdata" ) func TestReader(t *testing.T) { for _, recordSize := range []uint{24, 28, 32} { for _, ipVersion := range []uint{4, 6} { fileName := fmt.Sprintf( "MaxMind-DB-test-ipv%d-%d.mmdb", ipVersion, recordSize, ) t.Run(fileName, func(t *testing.T) { reader, err := Open(testFile(fileName)) require.NoError(t, err, "unexpected error while opening database: %v", err) checkMetadata(t, reader, ipVersion, recordSize) if ipVersion == 4 { checkIpv4(t, reader) } else { checkIpv6(t, reader) } }) } } } func TestReaderBytes(t *testing.T) { for _, recordSize := range []uint{24, 28, 32} { for _, ipVersion := range []uint{4, 6} { fileName := fmt.Sprintf( testFile("MaxMind-DB-test-ipv%d-%d.mmdb"), ipVersion, recordSize, ) bytes, err := os.ReadFile(fileName) require.NoError(t, err) reader, err := OpenBytes(bytes) require.NoError(t, err, "unexpected error while opening bytes: %v", err) checkMetadata(t, reader, ipVersion, recordSize) if ipVersion == 4 { checkIpv4(t, reader) } else { checkIpv6(t, reader) } } } } func TestLookupNetwork(t *testing.T) { bigInt := new(big.Int) bigInt.SetString("1329227995784915872903807060280344576", 10) decoderRecord := map[string]any{ "array": []any{ uint64(1), uint64(2), uint64(3), }, "boolean": true, "bytes": []uint8{ 0x0, 0x0, 0x0, 0x2a, }, "double": 42.123456, "float": float32(1.1), "int32": int32(-268435456), "map": map[string]any{ "mapX": map[string]any{ "arrayX": []any{ uint64(0x7), uint64(0x8), uint64(0x9), }, "utf8_stringX": "hello", }, }, "uint128": bigInt, "uint16": uint64(0x64), "uint32": uint64(0x10000000), "uint64": uint64(0x1000000000000000), "utf8_string": "unicode! ☯ - ♫", } tests := []struct { IP netip.Addr DBFile string ExpectedNetwork string ExpectedRecord any ExpectedFound bool }{ { IP: netip.MustParseAddr("1.1.1.1"), DBFile: "MaxMind-DB-test-ipv6-32.mmdb", ExpectedNetwork: "1.0.0.0/8", ExpectedRecord: nil, ExpectedFound: false, }, { IP: netip.MustParseAddr("::1:ffff:ffff"), DBFile: "MaxMind-DB-test-ipv6-24.mmdb", ExpectedNetwork: "::1:ffff:ffff/128", ExpectedRecord: map[string]any{"ip": "::1:ffff:ffff"}, ExpectedFound: true, }, { IP: netip.MustParseAddr("::2:0:1"), DBFile: "MaxMind-DB-test-ipv6-24.mmdb", ExpectedNetwork: "::2:0:0/122", ExpectedRecord: map[string]any{"ip": "::2:0:0"}, ExpectedFound: true, }, { IP: netip.MustParseAddr("1.1.1.1"), DBFile: "MaxMind-DB-test-ipv4-24.mmdb", ExpectedNetwork: "1.1.1.1/32", ExpectedRecord: map[string]any{"ip": "1.1.1.1"}, ExpectedFound: true, }, { IP: netip.MustParseAddr("1.1.1.3"), DBFile: "MaxMind-DB-test-ipv4-24.mmdb", ExpectedNetwork: "1.1.1.2/31", ExpectedRecord: map[string]any{"ip": "1.1.1.2"}, ExpectedFound: true, }, { IP: netip.MustParseAddr("1.1.1.3"), DBFile: "MaxMind-DB-test-decoder.mmdb", ExpectedNetwork: "1.1.1.0/24", ExpectedRecord: decoderRecord, ExpectedFound: true, }, { IP: netip.MustParseAddr("::ffff:1.1.1.128"), DBFile: "MaxMind-DB-test-decoder.mmdb", ExpectedNetwork: "::ffff:1.1.1.0/120", ExpectedRecord: decoderRecord, ExpectedFound: true, }, { IP: netip.MustParseAddr("::1.1.1.128"), DBFile: "MaxMind-DB-test-decoder.mmdb", ExpectedNetwork: "::101:100/120", ExpectedRecord: decoderRecord, ExpectedFound: true, }, { IP: netip.MustParseAddr("200.0.2.1"), DBFile: "MaxMind-DB-no-ipv4-search-tree.mmdb", ExpectedNetwork: "::/64", ExpectedRecord: "::0/64", ExpectedFound: true, }, { IP: netip.MustParseAddr("::200.0.2.1"), DBFile: "MaxMind-DB-no-ipv4-search-tree.mmdb", ExpectedNetwork: "::/64", ExpectedRecord: "::0/64", ExpectedFound: true, }, { IP: netip.MustParseAddr("0:0:0:0:ffff:ffff:ffff:ffff"), DBFile: "MaxMind-DB-no-ipv4-search-tree.mmdb", ExpectedNetwork: "::/64", ExpectedRecord: "::0/64", ExpectedFound: true, }, { IP: netip.MustParseAddr("ef00::"), DBFile: "MaxMind-DB-no-ipv4-search-tree.mmdb", ExpectedNetwork: "8000::/1", ExpectedRecord: nil, ExpectedFound: false, }, } for _, test := range tests { t.Run(fmt.Sprintf("%s - %s", test.DBFile, test.IP), func(t *testing.T) { var record any reader, err := Open(testFile(test.DBFile)) require.NoError(t, err) result := reader.Lookup(test.IP) require.NoError(t, result.Err()) assert.Equal(t, test.ExpectedFound, result.Found()) assert.Equal(t, test.ExpectedNetwork, result.Prefix().String()) require.NoError(t, result.Decode(&record)) assert.Equal(t, test.ExpectedRecord, record) }) } } func TestDecodingToInterface(t *testing.T) { reader, err := Open(testFile("MaxMind-DB-test-decoder.mmdb")) require.NoError(t, err, "unexpected error while opening database: %v", err) var recordInterface any err = reader.Lookup(netip.MustParseAddr("::1.1.1.0")).Decode(&recordInterface) require.NoError(t, err, "unexpected error while doing lookup: %v", err) checkDecodingToInterface(t, recordInterface) } func TestMetadataPointer(t *testing.T) { _, err := Open(testFile("MaxMind-DB-test-metadata-pointers.mmdb")) require.NoError(t, err, "unexpected error while opening database: %v", err) } func checkDecodingToInterface(t *testing.T, recordInterface any) { record := recordInterface.(map[string]any) assert.Equal(t, []any{uint64(1), uint64(2), uint64(3)}, record["array"]) assert.Equal(t, true, record["boolean"]) assert.Equal(t, []byte{0x00, 0x00, 0x00, 0x2a}, record["bytes"]) assert.InEpsilon(t, 42.123456, record["double"], 1e-10) assert.InEpsilon(t, float32(1.1), record["float"], 1e-5) assert.Equal(t, int32(-268435456), record["int32"]) assert.Equal(t, map[string]any{ "mapX": map[string]any{ "arrayX": []any{uint64(7), uint64(8), uint64(9)}, "utf8_stringX": "hello", }, }, record["map"], ) assert.Equal(t, uint64(100), record["uint16"]) assert.Equal(t, uint64(268435456), record["uint32"]) assert.Equal(t, uint64(1152921504606846976), record["uint64"]) assert.Equal(t, "unicode! ☯ - ♫", record["utf8_string"]) bigInt := new(big.Int) bigInt.SetString("1329227995784915872903807060280344576", 10) assert.Equal(t, bigInt, record["uint128"]) } type TestType struct { Array []uint `maxminddb:"array"` Boolean bool `maxminddb:"boolean"` Bytes []byte `maxminddb:"bytes"` Double float64 `maxminddb:"double"` Float float32 `maxminddb:"float"` Int32 int32 `maxminddb:"int32"` Map map[string]any `maxminddb:"map"` Uint16 uint16 `maxminddb:"uint16"` Uint32 uint32 `maxminddb:"uint32"` Uint64 uint64 `maxminddb:"uint64"` Uint128 big.Int `maxminddb:"uint128"` Utf8String string `maxminddb:"utf8_string"` } func TestDecoder(t *testing.T) { reader, err := Open(testFile("MaxMind-DB-test-decoder.mmdb")) require.NoError(t, err) verify := func(result TestType) { assert.Equal(t, []uint{uint(1), uint(2), uint(3)}, result.Array) assert.True(t, result.Boolean) assert.Equal(t, []byte{0x00, 0x00, 0x00, 0x2a}, result.Bytes) assert.InEpsilon(t, 42.123456, result.Double, 1e-10) assert.InEpsilon(t, float32(1.1), result.Float, 1e-5) assert.Equal(t, int32(-268435456), result.Int32) assert.Equal(t, map[string]any{ "mapX": map[string]any{ "arrayX": []any{uint64(7), uint64(8), uint64(9)}, "utf8_stringX": "hello", }, }, result.Map, ) assert.Equal(t, uint16(100), result.Uint16) assert.Equal(t, uint32(268435456), result.Uint32) assert.Equal(t, uint64(1152921504606846976), result.Uint64) assert.Equal(t, "unicode! ☯ - ♫", result.Utf8String) bigInt := new(big.Int) bigInt.SetString("1329227995784915872903807060280344576", 10) assert.Equal(t, bigInt, &result.Uint128) } { // Directly lookup and decode. var testV TestType require.NoError(t, reader.Lookup(netip.MustParseAddr("::1.1.1.0")).Decode(&testV)) verify(testV) } { // Lookup record offset, then Decode. var testV TestType result := reader.Lookup(netip.MustParseAddr("::1.1.1.0")) require.NoError(t, result.Err()) require.True(t, result.Found()) res := reader.LookupOffset(result.Offset()) require.NoError(t, res.Decode(&testV)) verify(testV) } require.NoError(t, reader.Close()) } func TestDecodePath(t *testing.T) { reader, err := Open(testFile("MaxMind-DB-test-decoder.mmdb")) require.NoError(t, err) result := reader.Lookup(netip.MustParseAddr("::1.1.1.0")) require.NoError(t, result.Err()) var u16 uint16 require.NoError(t, result.DecodePath(&u16, "uint16")) assert.Equal(t, uint16(100), u16) var u uint require.NoError(t, result.DecodePath(&u, "array", 0)) assert.Equal(t, uint(1), u) var u2 uint require.NoError(t, result.DecodePath(&u2, "array", 2)) assert.Equal(t, uint(3), u2) // This is past the end of the array var u3 uint require.NoError(t, result.DecodePath(&u3, "array", 3)) assert.Equal(t, uint(0), u3) // Negative offsets var n1 uint require.NoError(t, result.DecodePath(&n1, "array", -1)) assert.Equal(t, uint(3), n1) var n2 uint require.NoError(t, result.DecodePath(&n2, "array", -3)) assert.Equal(t, uint(1), n2) var u4 uint require.NoError(t, result.DecodePath(&u4, "map", "mapX", "arrayX", 1)) assert.Equal(t, uint(8), u4) // Does key not exist var ne uint require.NoError(t, result.DecodePath(&ne, "does-not-exist", 1)) assert.Equal(t, uint(0), ne) // Test pointer pattern for path existence checking var existingStringPtr *string require.NoError(t, result.DecodePath(&existingStringPtr, "utf8_string")) assert.NotNil(t, existingStringPtr, "existing path should decode to non-nil pointer") assert.Equal(t, "unicode! ☯ - ♫", *existingStringPtr) var nonExistentStringPtr *string require.NoError(t, result.DecodePath(&nonExistentStringPtr, "does-not-exist")) assert.Nil(t, nonExistentStringPtr, "non-existent path should decode to nil pointer") } type TestInterface interface { method() bool } func (t *TestType) method() bool { return t.Boolean } func TestStructInterface(t *testing.T) { var result TestInterface = &TestType{} reader, err := Open(testFile("MaxMind-DB-test-decoder.mmdb")) require.NoError(t, err) require.NoError(t, reader.Lookup(netip.MustParseAddr("::1.1.1.0")).Decode(&result)) assert.True(t, result.method()) } func TestNonEmptyNilInterface(t *testing.T) { var result TestInterface reader, err := Open(testFile("MaxMind-DB-test-decoder.mmdb")) require.NoError(t, err) err = reader.Lookup(netip.MustParseAddr("::1.1.1.0")).Decode(&result) assert.Equal( t, "at offset 115: maxminddb: cannot unmarshal map into type maxminddb.TestInterface", err.Error(), ) } type CityTraits struct { AutonomousSystemNumber uint `json:"autonomous_system_number,omitempty" maxminddb:"autonomous_system_number"` } type City struct { Traits CityTraits `maxminddb:"traits"` } func TestEmbeddedStructAsInterface(t *testing.T) { var city City var result any = city.Traits db, err := Open(testFile("GeoIP2-ISP-Test.mmdb")) require.NoError(t, err) require.NoError(t, db.Lookup(netip.MustParseAddr("1.128.0.0")).Decode(&result)) } type BoolInterface interface { true() bool } type Bool bool func (b Bool) true() bool { return bool(b) } type ValueTypeTestType struct { Boolean BoolInterface `maxminddb:"boolean"` } func TestValueTypeInterface(t *testing.T) { var result ValueTypeTestType result.Boolean = Bool(false) reader, err := Open(testFile("MaxMind-DB-test-decoder.mmdb")) require.NoError(t, err) // although it would be nice to support cases like this, I am not sure it // is possible to do so in a general way. assert.Error(t, reader.Lookup(netip.MustParseAddr("::1.1.1.0")).Decode(&result)) } type NestedMapX struct { UTF8StringX string `maxminddb:"utf8_stringX"` } type NestedPointerMapX struct { ArrayX []int `maxminddb:"arrayX"` } type PointerMap struct { MapX struct { NestedMapX *NestedPointerMapX Ignored string } `maxminddb:"mapX"` } type TestPointerType struct { Array *[]uint `maxminddb:"array"` Boolean *bool `maxminddb:"boolean"` Bytes *[]byte `maxminddb:"bytes"` Double *float64 `maxminddb:"double"` Float *float32 `maxminddb:"float"` Int32 *int32 `maxminddb:"int32"` Map *PointerMap `maxminddb:"map"` Uint16 *uint16 `maxminddb:"uint16"` Uint32 *uint32 `maxminddb:"uint32"` // Test for pointer to pointer Uint64 **uint64 `maxminddb:"uint64"` Uint128 *big.Int `maxminddb:"uint128"` Utf8String *string `maxminddb:"utf8_string"` } func TestComplexStructWithNestingAndPointer(t *testing.T) { reader, err := Open(testFile("MaxMind-DB-test-decoder.mmdb")) require.NoError(t, err) var result TestPointerType err = reader.Lookup(netip.MustParseAddr("::1.1.1.0")).Decode(&result) require.NoError(t, err) assert.Equal(t, []uint{uint(1), uint(2), uint(3)}, *result.Array) assert.True(t, *result.Boolean) assert.Equal(t, []byte{0x00, 0x00, 0x00, 0x2a}, *result.Bytes) assert.InEpsilon(t, 42.123456, *result.Double, 1e-10) assert.InEpsilon(t, float32(1.1), *result.Float, 1e-5) assert.Equal(t, int32(-268435456), *result.Int32) assert.Equal(t, []int{7, 8, 9}, result.Map.MapX.ArrayX) assert.Equal(t, "hello", result.Map.MapX.UTF8StringX) assert.Equal(t, uint16(100), *result.Uint16) assert.Equal(t, uint32(268435456), *result.Uint32) assert.Equal(t, uint64(1152921504606846976), **result.Uint64) assert.Equal(t, "unicode! ☯ - ♫", *result.Utf8String) bigInt := new(big.Int) bigInt.SetString("1329227995784915872903807060280344576", 10) assert.Equal(t, bigInt, result.Uint128) require.NoError(t, reader.Close()) } // See GitHub #115. func TestNestedMapDecode(t *testing.T) { db, err := Open(testFile("GeoIP2-Country-Test.mmdb")) require.NoError(t, err) var r map[string]map[string]any require.NoError(t, db.Lookup(netip.MustParseAddr("89.160.20.128")).Decode(&r)) assert.Equal( t, map[string]map[string]any{ "continent": { "code": "EU", "geoname_id": uint64(6255148), "names": map[string]any{ "de": "Europa", "en": "Europe", "es": "Europa", "fr": "Europe", "ja": "ヨーロッパ", "pt-BR": "Europa", "ru": "Европа", "zh-CN": "欧洲", }, }, "country": { "geoname_id": uint64(2661886), "is_in_european_union": true, "iso_code": "SE", "names": map[string]any{ "de": "Schweden", "en": "Sweden", "es": "Suecia", "fr": "Suède", "ja": "スウェーデン王国", "pt-BR": "Suécia", "ru": "Швеция", "zh-CN": "瑞典", }, }, "registered_country": { "geoname_id": uint64(2921044), "is_in_european_union": true, "iso_code": "DE", "names": map[string]any{ "de": "Deutschland", "en": "Germany", "es": "Alemania", "fr": "Allemagne", "ja": "ドイツ連邦共和国", "pt-BR": "Alemanha", "ru": "Германия", "zh-CN": "德国", }, }, }, r, ) } func TestNestedOffsetDecode(t *testing.T) { db, err := Open(testFile("GeoIP2-City-Test.mmdb")) require.NoError(t, err) result := db.Lookup(netip.MustParseAddr("81.2.69.142")) require.NoError(t, result.Err()) require.True(t, result.Found()) var root struct { CountryOffset uintptr `maxminddb:"country"` Location struct { Latitude float64 `maxminddb:"latitude"` // Longitude is directly nested within the parent map. LongitudeOffset uintptr `maxminddb:"longitude"` // TimeZone is indirected via a pointer. TimeZoneOffset uintptr `maxminddb:"time_zone"` } `maxminddb:"location"` } res := db.LookupOffset(result.Offset()) require.NoError(t, res.Decode(&root)) assert.InEpsilon(t, 51.5142, root.Location.Latitude, 1e-10) var longitude float64 res = db.LookupOffset(root.Location.LongitudeOffset) require.NoError(t, res.Decode(&longitude)) assert.InEpsilon(t, -0.0931, longitude, 1e-10) var timeZone string res = db.LookupOffset(root.Location.TimeZoneOffset) require.NoError(t, res.Decode(&timeZone)) assert.Equal(t, "Europe/London", timeZone) var country struct { IsoCode string `maxminddb:"iso_code"` } res = db.LookupOffset(root.CountryOffset) require.NoError(t, res.Decode(&country)) assert.Equal(t, "GB", country.IsoCode) require.NoError(t, db.Close()) } func TestDecodingUint16IntoInt(t *testing.T) { reader, err := Open(testFile("MaxMind-DB-test-decoder.mmdb")) require.NoError(t, err, "unexpected error while opening database: %v", err) var result struct { Uint16 int `maxminddb:"uint16"` } err = reader.Lookup(netip.MustParseAddr("::1.1.1.0")).Decode(&result) require.NoError(t, err) assert.Equal(t, 100, result.Uint16) } func TestIpv6inIpv4(t *testing.T) { reader, err := Open(testFile("MaxMind-DB-test-ipv4-24.mmdb")) require.NoError(t, err, "unexpected error while opening database: %v", err) var result TestType err = reader.Lookup(netip.MustParseAddr("2001::")).Decode(&result) var emptyResult TestType assert.Equal(t, emptyResult, result) expected := errors.New( "error looking up '2001::': you attempted to look up an IPv6 address in an IPv4-only database", ) assert.Equal(t, expected, err) require.NoError(t, reader.Close(), "error on close") } func TestBrokenDoubleDatabase(t *testing.T) { reader, err := Open(testFile("GeoIP2-City-Test-Broken-Double-Format.mmdb")) require.NoError(t, err, "unexpected error while opening database: %v", err) var result any err = reader.Lookup(netip.MustParseAddr("2001:220::")).Decode(&result) expected := mmdberrors.NewInvalidDatabaseError( "the MaxMind DB file's data section contains bad data (float 64 size of 2)", ) require.ErrorAs(t, err, &expected) require.NoError(t, reader.Close(), "error on close") } func TestInvalidNodeCountDatabase(t *testing.T) { _, err := Open(testFile("GeoIP2-City-Test-Invalid-Node-Count.mmdb")) expected := mmdberrors.NewInvalidDatabaseError("the MaxMind DB contains invalid metadata") assert.Equal(t, expected, err) } func TestMissingDatabase(t *testing.T) { reader, err := Open("file-does-not-exist.mmdb") assert.Nil(t, reader, "received reader when doing lookups on DB that doesn't exist") assert.Regexp(t, "open file-does-not-exist.mmdb.*", err) } func TestNonDatabase(t *testing.T) { reader, err := Open("README.md") assert.Nil(t, reader, "received reader when doing lookups on DB that doesn't exist") assert.Equal(t, "error opening database: invalid MaxMind DB file", err.Error()) } func TestDecodingToNonPointer(t *testing.T) { reader, err := Open(testFile("MaxMind-DB-test-decoder.mmdb")) require.NoError(t, err) var recordInterface any err = reader.Lookup(netip.MustParseAddr("::1.1.1.0")).Decode(recordInterface) assert.Equal(t, "result param must be a pointer", err.Error()) require.NoError(t, reader.Close(), "error on close") } // func TestNilLookup(t *testing.T) { // reader, err := Open(testFile("MaxMind-DB-test-decoder.mmdb")) // require.NoError(t, err) // var recordInterface any // err = reader.Lookup(nil).Decode( recordInterface) // assert.Equal(t, "IP passed to Lookup cannot be nil", err.Error()) // require.NoError(t, reader.Close(), "error on close") // } func TestUsingClosedDatabase(t *testing.T) { reader, err := Open(testFile("MaxMind-DB-test-decoder.mmdb")) require.NoError(t, err) require.NoError(t, reader.Close()) addr := netip.MustParseAddr("::") result := reader.Lookup(addr) assert.Equal(t, "cannot call Lookup on a closed database", result.Err().Error()) var recordInterface any err = reader.Lookup(addr).Decode(recordInterface) assert.Equal(t, "cannot call Lookup on a closed database", err.Error()) err = reader.LookupOffset(0).Decode(recordInterface) assert.Equal(t, "cannot call LookupOffset on a closed database", err.Error()) } func checkMetadata(t *testing.T, reader *Reader, ipVersion, recordSize uint) { metadata := reader.Metadata assert.Equal(t, uint(2), metadata.BinaryFormatMajorVersion) assert.Equal(t, uint(0), metadata.BinaryFormatMinorVersion) assert.IsType(t, uint(0), metadata.BuildEpoch) assert.Equal(t, "Test", metadata.DatabaseType) assert.Equal(t, map[string]string{ "en": "Test Database", "zh": "Test Database Chinese", }, metadata.Description) assert.Equal(t, ipVersion, metadata.IPVersion) assert.Equal(t, []string{"en", "zh"}, metadata.Languages) if ipVersion == 4 { assert.Equal(t, uint(164), metadata.NodeCount) } else { assert.Equal(t, uint(416), metadata.NodeCount) } assert.Equal(t, recordSize, metadata.RecordSize) } func checkIpv4(t *testing.T, reader *Reader) { for i := range uint(6) { address := fmt.Sprintf("1.1.1.%d", uint(1)<> 24) ip[1] = byte(num >> 16) ip[2] = byte(num >> 8) ip[3] = byte(num) v, _ := netip.AddrFromSlice(ip) return v } func testFile(file string) string { return filepath.Join("test-data", "test-data", file) } // Test custom unmarshaling through Reader.Lookup. func TestCustomUnmarshaler(t *testing.T) { reader, err := Open(testFile("MaxMind-DB-test-decoder.mmdb")) require.NoError(t, err) defer func() { if err := reader.Close(); err != nil { t.Errorf("Error closing reader: %v", err) } }() // Test a type that implements Unmarshaler var customDecoded TestCity result := reader.Lookup(netip.MustParseAddr("1.1.1.1")) err = result.Decode(&customDecoded) require.NoError(t, err) // Test that the same data decoded with reflection gives the same result var reflectionDecoded map[string]any result2 := reader.Lookup(netip.MustParseAddr("1.1.1.1")) err = result2.Decode(&reflectionDecoded) require.NoError(t, err) // Verify the custom decoder worked correctly // The exact assertions depend on the test data in MaxMind-DB-test-decoder.mmdb t.Logf("Custom decoded: %+v", customDecoded) t.Logf("Reflection decoded: %+v", reflectionDecoded) // Test that both methods produce consistent results for any matching data if len(customDecoded.Names) > 0 || len(reflectionDecoded) > 0 { t.Log("Custom unmarshaler integration test passed - both decoders worked") } } // TestCity represents a simplified city data structure for testing custom unmarshaling. type TestCity struct { Names map[string]string `maxminddb:"names"` GeoNameID uint `maxminddb:"geoname_id"` } // UnmarshalMaxMindDB implements the Unmarshaler interface for TestCity. // This demonstrates custom decoding that avoids reflection for better performance. func (c *TestCity) UnmarshalMaxMindDB(d *mmdbdata.Decoder) error { mapIter, _, err := d.ReadMap() if err != nil { return err } for key, err := range mapIter { if err != nil { return err } switch string(key) { case "names": // Decode nested map[string]string for localized names nameMapIter, size, err := d.ReadMap() if err != nil { return err } names := make(map[string]string, size) // Pre-allocate with correct capacity for nameKey, nameErr := range nameMapIter { if nameErr != nil { return nameErr } value, valueErr := d.ReadString() if valueErr != nil { return valueErr } names[string(nameKey)] = value } c.Names = names case "geoname_id": geoID, err := d.ReadUint32() if err != nil { return err } c.GeoNameID = uint(geoID) default: // Skip unknown fields if err := d.SkipValue(); err != nil { return err } } } return nil } // TestASN represents ASN data for testing custom unmarshaling. type TestASN struct { AutonomousSystemOrganization string `maxminddb:"autonomous_system_organization"` AutonomousSystemNumber uint `maxminddb:"autonomous_system_number"` } // UnmarshalMaxMindDB implements the Unmarshaler interface for TestASN. func (a *TestASN) UnmarshalMaxMindDB(d *mmdbdata.Decoder) error { mapIter, _, err := d.ReadMap() if err != nil { return err } for key, err := range mapIter { if err != nil { return err } switch string(key) { case "autonomous_system_organization": org, err := d.ReadString() if err != nil { return err } a.AutonomousSystemOrganization = org case "autonomous_system_number": asn, err := d.ReadUint32() if err != nil { return err } a.AutonomousSystemNumber = uint(asn) default: if err := d.SkipValue(); err != nil { return err } } } return nil } // TestFallbackToReflection verifies that types without UnmarshalMaxMindDB still work. func TestFallbackToReflection(t *testing.T) { reader, err := Open(testFile("MaxMind-DB-test-decoder.mmdb")) require.NoError(t, err) defer func() { if err := reader.Close(); err != nil { t.Errorf("Error closing reader: %v", err) } }() // Test with a regular struct that doesn't implement Unmarshaler var regularStruct struct { Names map[string]string `maxminddb:"names"` } result := reader.Lookup(netip.MustParseAddr("1.1.1.1")) err = result.Decode(®ularStruct) require.NoError(t, err) // Log the result for verification t.Logf("Reflection fallback result: %+v", regularStruct) } func TestMetadataBuildTime(t *testing.T) { reader, err := Open(testFile("GeoIP2-City-Test.mmdb")) require.NoError(t, err) defer func() { if err := reader.Close(); err != nil { t.Errorf("Error closing reader: %v", err) } }() metadata := reader.Metadata // Test that BuildTime() returns a valid time buildTime := metadata.BuildTime() assert.False(t, buildTime.IsZero(), "BuildTime should not be zero") // Test that BuildTime() matches BuildEpoch expectedTime := time.Unix(int64(metadata.BuildEpoch), 0) assert.Equal(t, expectedTime, buildTime, "BuildTime should match time.Unix(BuildEpoch, 0)") // Verify the build time is reasonable (after 2010, before 2030) assert.True(t, buildTime.After(time.Date(2010, 1, 1, 0, 0, 0, 0, time.UTC))) assert.True(t, buildTime.Before(time.Date(2030, 1, 1, 0, 0, 0, 0, time.UTC))) } func TestIntegerOverflowProtection(t *testing.T) { // Test that OpenBytes detects integer overflow in search tree size calculation t.Run("NodeCount overflow protection", func(t *testing.T) { // Create metadata that would cause overflow: very large NodeCount // For a 64-bit system with RecordSize=32, this should trigger overflow // RecordSize/4 = 8, so maxNodes would be ^uint(0)/8 // We'll use a NodeCount larger than this limit overflowNodeCount := ^uint(0)/8 + 1000 // Guaranteed to overflow // Build minimal metadata map structure in MMDB format // This is simplified - in a real MMDB, metadata is encoded differently // But we can't easily create a valid MMDB file structure in a unit test // So this test verifies the logic with mocked values // Create a test by directly calling the validation logic metadata := Metadata{ NodeCount: overflowNodeCount, RecordSize: 32, // 32 bits = 4 bytes, so RecordSize/4 = 8 } // Test the overflow detection logic directly recordSizeQuarter := metadata.RecordSize / 4 maxNodes := ^uint(0) / recordSizeQuarter // Verify our test setup is correct assert.Greater(t, metadata.NodeCount, maxNodes, "Test setup error: NodeCount should exceed maxNodes for overflow test") // Since we can't easily create an invalid MMDB file that parses but has overflow values, // we test the core logic validation here and rely on integration tests // for the full OpenBytes flow if metadata.NodeCount > 0 && metadata.RecordSize > 0 { recordSizeQuarter := metadata.RecordSize / 4 if recordSizeQuarter > 0 { maxNodes := ^uint(0) / recordSizeQuarter if metadata.NodeCount > maxNodes { // This is what should happen in OpenBytes err := mmdberrors.NewInvalidDatabaseError("database tree size would overflow") assert.Equal(t, "database tree size would overflow", err.Error()) } } } }) t.Run("Valid large values should not trigger overflow", func(t *testing.T) { // Test that reasonable large values don't trigger false positives metadata := Metadata{ NodeCount: 1000000, // 1 million nodes RecordSize: 32, } recordSizeQuarter := metadata.RecordSize / 4 maxNodes := ^uint(0) / recordSizeQuarter // Verify this doesn't trigger overflow assert.LessOrEqual(t, metadata.NodeCount, maxNodes, "Valid large NodeCount should not trigger overflow protection") }) t.Run("Edge case: RecordSize/4 is 0", func(t *testing.T) { // Test edge case where RecordSize/4 could be 0 recordSize := uint(3) // 3/4 = 0 in integer division recordSizeQuarter := recordSize / 4 // Should be 0, which means no overflow check is performed assert.Equal(t, uint(0), recordSizeQuarter) // The overflow protection should skip when recordSizeQuarter is 0 // This tests the condition: if recordSizeQuarter > 0 }) } func TestNetworksWithinInvalidPrefix(t *testing.T) { reader, err := Open(testFile("GeoIP2-Country-Test.mmdb")) require.NoError(t, err) defer func() { require.NoError(t, reader.Close()) }() // Test what happens when user ignores ParsePrefix error and passes invalid prefix var invalidPrefix netip.Prefix // Zero value - invalid prefix foundError := false for result := range reader.NetworksWithin(invalidPrefix) { if result.Err() != nil { foundError = true // Check that we get an appropriate error message assert.Contains(t, result.Err().Error(), "invalid prefix") break } } assert.True(t, foundError, "Expected error when using invalid prefix") } golang-github-oschwald-maxminddb-golang-v2-2.0.0/result.go000066400000000000000000000111141507532544400234510ustar00rootroot00000000000000package maxminddb import ( "math" "net/netip" ) const notFound uint = math.MaxUint // Result holds the result of the database lookup. type Result struct { ip netip.Addr err error reader *Reader offset uint prefixLen uint8 } // Decode unmarshals the data from the data section into the value pointed to // by v. If v is nil or not a pointer, an error is returned. If the data in // the database record cannot be stored in v because of type differences, an // UnmarshalTypeError is returned. If the database is invalid or otherwise // cannot be read, an InvalidDatabaseError is returned. // // An error will also be returned if there was an error during the // Reader.Lookup call. // // If the Reader.Lookup call did not find a value for the IP address, no error // will be returned and v will be unchanged. func (r Result) Decode(v any) error { if r.err != nil { return r.err } if r.offset == notFound { return nil } return r.reader.decoder.Decode(r.offset, v) } // DecodePath unmarshals a value from data section into v, following the // specified path. // // The v parameter should be a pointer to the value where the decoded data // will be stored. If v is nil or not a pointer, an error is returned. If the // data in the database record cannot be stored in v because of type // differences, an UnmarshalTypeError is returned. // // The path is a variadic list of keys (strings) and/or indices (ints) that // describe the nested structure to traverse in the data to reach the desired // value. // // For maps, string path elements are used as keys. // For arrays, int path elements are used as indices. A negative offset will // return values from the end of the array, e.g., -1 will return the last // element. // // If the path is empty, the entire data structure is decoded into v. // // To check if a path exists (rather than relying on zero values), decode // into a pointer and check if it remains nil: // // var city *string // err := result.DecodePath(&city, "city", "names", "en") // if err != nil { // // Handle error // } // if city == nil { // // Path not found // } else { // // Path exists, city contains the value // } // // Returns an error if: // - the path is invalid // - the data cannot be decoded into the type of v // - v is not a pointer or the database record cannot be stored in v due to // type mismatch // - the Result does not contain valid data // // Example usage: // // var city string // err := result.DecodePath(&city, "city", "names", "en") // // var geonameID int // err := result.DecodePath(&geonameID, "subdivisions", 0, "geoname_id") func (r Result) DecodePath(v any, path ...any) error { if r.err != nil { return r.err } if r.offset == notFound { return nil } return r.reader.decoder.DecodePath(r.offset, path, v) } // Err provides a way to check whether there was an error during the lookup // without calling Result.Decode. If there was an error, it will also be // returned from Result.Decode. func (r Result) Err() error { return r.err } // Found will return true if the IP was found in the search tree. It will // return false if the IP was not found or if there was an error. func (r Result) Found() bool { return r.err == nil && r.offset != notFound } // Offset returns the offset of the record in the database. This can be // passed to (*Reader).LookupOffset. It can also be used as a unique // identifier for the data record in the particular database to cache the data // record across lookups. Note that while the offset uniquely identifies the // data record, other data in Result may differ between lookups. The offset // is only valid for the current database version. If you update the database // file, you must invalidate any cache associated with the previous version. func (r Result) Offset() uintptr { return uintptr(r.offset) } // Prefix returns the netip.Prefix representing the network associated with // the data record in the database. func (r Result) Prefix() netip.Prefix { ip := r.ip prefixLen := int(r.prefixLen) if ip.Is4() { // This is necessary as the node that the IPv4 start is at may // be at a bit depth that is less that 96, i.e., ipv4Start points // to a leaf node. For instance, if a record was inserted at ::/8, // the ipv4Start would point directly at the leaf node for the // record and would have a bit depth of 8. This would not happen // with databases currently distributed by MaxMind as all of them // have an IPv4 subtree that is greater than a single node. if prefixLen < 96 { return netip.PrefixFrom(zeroIP, prefixLen) } prefixLen -= 96 } prefix, _ := ip.Prefix(prefixLen) return prefix } golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/000077500000000000000000000000001507532544400234745ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/.gitattributes000066400000000000000000000000211507532544400263600ustar00rootroot00000000000000*.mmdb diff=mmdb golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/.gitconfig000066400000000000000000000000501507532544400254410ustar00rootroot00000000000000[diff "mmdb"] textconv = hexdump -v -C golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/.gitignore000066400000000000000000000000301507532544400254550ustar00rootroot00000000000000/_site .tidyall.d *.swp golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/.perltidyallrc000066400000000000000000000003251507532544400263470ustar00rootroot00000000000000--blank-lines-before-packages=0 --iterations=2 --no-outdent-long-comments -bar -boc -ci=4 -i=4 -l=78 -nolq -se -wbb="% + - * / x != == >= <= =~ !~ < > | & >= < = **= += *= &= <<= &&= -= /= |= >>= ||= .= %= ^= x=" golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/.tidyallrc000066400000000000000000000001741507532544400254660ustar00rootroot00000000000000[PerlTidy] select = **/*.{pl,pm,t,psgi} ignore = blib/**/* argv = --profile=$ROOT/.perltidyallrc [JSON] select = **/*.json golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/LICENSE000066400000000000000000000004361507532544400245040ustar00rootroot00000000000000This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA. golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/MaxMind-DB-spec.md000066400000000000000000000517731507532544400266030ustar00rootroot00000000000000--- layout: default title: MaxMind DB File Format Specification version: v2.0 --- # MaxMind DB File Format Specification ## Description The MaxMind DB file format is a database format that maps IPv4 and IPv6 addresses to data records using an efficient binary search tree. ## Version This spec documents **version 2.0** of the MaxMind DB binary format. The version number consists of separate major and minor version numbers. It should not be considered a decimal number. In other words, version 2.10 comes after version 2.9. Code which is capable of reading a given major version of the format should not be broken by minor version changes to the format. ## Overview The binary database is split into three parts: 1. The binary search tree. Each level of the tree corresponds to a single bit in the prefix of the network the IP address belongs to. 2. The data section with the values for the networks in the binary search tree. These values may be comprised of a single data type, e.g., the string "US" or "New York", or they may be a more complex map or array type made up of multiple fields. 3. Database metadata. Information about the database itself. ## Database Metadata This portion of the database is stored at the end of the file. It is documented first because understanding some of the metadata is key to understanding how the other sections work. This section can be found by looking for a binary sequence matching "\xab\xcd\xefMaxMind.com". The *last* occurrence of this string in the file marks the end of the data section and the beginning of the metadata. Since we allow for arbitrary binary data in the data section, some other piece of data could contain these values. This is why you need to find the last occurrence of this sequence. The maximum allowable size for the metadata section, including the marker that starts the metadata, is 128KiB. The metadata is stored as a separate data section comprised of a map data structure starting at the beginning of that section. This structure is described later in the spec. Except where otherwise specified, each key listed is required for the database to be considered valid. Changing a key's data type or removing a key would constitute a major version change for this spec. Adding a key constitutes a minor version change. The list of known keys for the current version of the format is as follows: ### node\_count This is an unsigned 32-bit integer indicating the number of nodes in the search tree. ### record\_size This is an unsigned 16-bit integer. It indicates the number of bits in a record in the search tree. Note that each node consists of *two* records. ### ip\_version This is an unsigned 16-bit integer which is always 4 or 6. It indicates whether the database contains IPv4 or IPv6 address data. ### database\_type This is a string that indicates the structure of each data record associated with an IP address. The actual definition of these structures is left up to the database creator. Names starting with "GeoIP" are reserved for use by MaxMind (and "GeoIP" is a trademark anyway). ### languages An array of strings, each of which is a locale code. A given record may contain data items that have been localized to some or all of these locales. Records should not contain localized data for locales not included in this array. This is an optional key, as this may not be relevant for all types of data. ### binary\_format\_major\_version This is an unsigned 16-bit integer indicating the major version number for the database's binary format. ### binary\_format\_minor\_version This is an unsigned 16-bit integer indicating the minor version number for the database's binary format. ### build\_epoch This is an unsigned 64-bit integer that contains the database build timestamp as a Unix epoch value. ### description This key will always point to a map. The keys of that map will be language codes, and the values will be a description in that language as a UTF-8 string. The codes may include additional information such as script or country identifiers, like "zh-TW" or "mn-Cyrl-MN". The additional identifiers will be separated by a dash character ("-"). This key is optional. However, creators of databases are strongly encouraged to include a description in at least one language. ### Calculating the Search Tree Section Size The formula for calculating the search tree section size *in bytes* is as follows: ( ( $record_size * 2 ) / 8 ) * $number_of_nodes The end of the search tree marks the beginning of the data section. ## Binary Search Tree Section The database file starts with a binary search tree. The number of nodes in the tree is dependent on how many unique netblocks are needed for the particular database. For example, the city database needs many more small netblocks than the country database. The top most node is always located at the beginning of the search tree section's address space. The top node is node 0. Each node consists of two records, each of which is a pointer to an address in the file. The pointers can point to one of three things. First, it may point to another node in the search tree address space. These pointers are followed as part of the IP address search algorithm, described below. The pointer can point to a value equal to `$number_of_nodes`. If this is the case, it means that the IP address we are searching for is not in the database. Finally, it may point to an address in the data section. This is the data relevant to the given netblock. ### Node Layout Each node in the search tree consists of two records, each of which is a pointer. The record size varies by database, but inside a single database node records are always the same size. A record may be anywhere from 24 to 128 bits long, depending on the number of nodes in the tree. These pointers are stored in big-endian format (most significant byte first). Here are some examples of how the records are laid out in a node for 24, 28, and 32 bit records. Larger record sizes follow this same pattern. #### 24 bits (small database), one node is 6 bytes | <------------- node --------------->| | 23 .. 0 | 23 .. 0 | #### 28 bits (medium database), one node is 7 bytes | <------------- node --------------->| | 23 .. 0 | 27..24 | 27..24 | 23 .. 0 | Note 4 bits of each pointer are combined into the middle byte. For both records, they are prepended and end up in the most significant position. #### 32 bits (large database), one node is 8 bytes | <------------- node --------------->| | 31 .. 0 | 31 .. 0 | ### Search Lookup Algorithm The first step is to convert the IP address to its big-endian binary representation. For an IPv4 address, this becomes 32 bits. For IPv6 you get 128 bits. The leftmost bit corresponds to the first node in the search tree. For each bit, a value of 0 means we choose the left record in a node, and a value of 1 means we choose the right record. The record value is always interpreted as an unsigned integer. The maximum size of the integer is dependent on the number of bits in a record (24, 28, or 32). If the record value is a number that is less than the *number of nodes* (not in bytes, but the actual node count) in the search tree (this is stored in the database metadata), then the value is a node number. In this case, we find that node in the search tree and repeat the lookup algorithm from there. If the record value is equal to the number of nodes, that means that we do not have any data for the IP address, and the search ends here. If the record value is *greater* than the number of nodes in the search tree, then it is an actual pointer value pointing into the data section. The value of the pointer is relative to the start of the data section, *not* the start of the file. In order to determine where in the data section we should start looking, we use the following formula: $data_section_offset = ( $record_value - $node_count ) - 16 The 16 is the size of the data section separator. We subtract it because we want to permit pointing to the first byte of the data section. Recall that the record value cannot equal the node count as that means there is no data. Instead, we choose to start values that go to the data section at `$node_count + 16`. (This has the side effect that record values `$node_count + 1` through `$node_count + 15` inclusive are not valid). This is best demonstrated by an example: Let's assume we have a 24-bit tree with 1,000 nodes. Each node contains 48 bits, or 6 bytes. The size of the tree is 6,000 bytes. When a record in the tree contains a number that is less than 1,000, this is a *node number*, and we look up that node. If a record contains a value greater than or equal to 1,016, we know that it is a data section value. We subtract the node count (1,000) and then subtract 16 for the data section separator, giving us the number 0, the first byte of the data section. If a record contained the value 6,000, this formula would give us an offset of 4,984 into the data section. In order to determine where in the file this offset really points to, we also need to know where the data section starts. This can be calculated by determining the size of the search tree in bytes and then adding an additional 16 bytes for the data section separator: $offset_in_file = $data_section_offset + $search_tree_size_in_bytes + 16 Since we subtract and then add 16, the final formula to determine the offset in the file can be simplified to: $offset_in_file = ( $record_value - $node_count ) + $search_tree_size_in_bytes ### IPv4 addresses in an IPv6 tree When storing IPv4 addresses in an IPv6 tree, they are stored as-is, so they occupy the first 32-bits of the address space (from 0 to 2**32 - 1). Creators of databases should decide on a strategy for handling the various mappings between IPv4 and IPv6. The strategy that MaxMind uses for its GeoIP databases is to include a pointer from the `::ffff:0:0/96` subnet to the root node of the IPv4 address space in the tree. This accounts for the [IPv4-mapped IPv6 address](http://en.wikipedia.org/wiki/IPv6#IPv4-mapped_IPv6_addresses). MaxMind also includes a pointer from the `2002::/16` subnet to the root node of the IPv4 address space in the tree. This accounts for the [6to4 mapping](http://en.wikipedia.org/wiki/6to4) subnet. Database creators are encouraged to document whether they are doing something similar for their databases. The Teredo subnet cannot be accounted for in the tree. Instead, code that searches the tree can offer to decode the IPv4 portion of a Teredo address and look that up. ## Data Section Separator There are 16 bytes of NULLs in between the search tree and the data section. This separator exists in order to make it possible for a verification tool to distinguish between the two sections. This separator is not considered part of the data section itself. In other words, the data section starts at `$size_of_search_tree + 16` bytes in the file. ## Output Data Section Each output data field has an associated type, and that type is encoded as a number that begins the data field. Some types are variable length. In those cases, the type indicator is also followed by a length. The data payload always comes at the end of the field. All binary data is stored in big-endian format. Note that the *interpretation* of a given data type's meaning is decided by higher-level APIs, not by the binary format itself. ### pointer - 1 A pointer to another part of the data section's address space. The pointer will point to the beginning of a field. It is illegal for a pointer to point to another pointer. Pointer values start from the beginning of the data section, *not* the beginning of the file. Pointers in the metadata start from the beginning of the metadata section. ### UTF-8 string - 2 A variable length byte sequence that contains valid utf8. If the length is zero then this is an empty string. ### double - 3 This is stored as an IEEE-754 double (binary64) in big-endian format. The length of a double is always 8 bytes. ### bytes - 4 A variable length byte sequence containing any sort of binary data. If the length is zero then this a zero-length byte sequence. This is not currently used but may be used in the future to embed non-text data (images, etc.). ### integer formats Integers are stored in variable length binary fields. We support 16-bit, 32-bit, 64-bit, and 128-bit unsigned integers. We also support 32-bit signed integers. A 128-bit integer can use up to 16 bytes, but may use fewer. Similarly, a 32-bit integer may use from 0-4 bytes. The number of bytes used is determined by the length specifier in the control byte. See below for details. A length of zero always indicates the number 0. When storing a signed integer, fields shorter than the maximum byte length are always positive. When the field is the maximum length, e.g., 4 bytes for 32-bit integers, the left-most bit is the sign. A 1 is negative and a 0 is positive. The type numbers for our integer types are: * unsigned 16-bit int - 5 * unsigned 32-bit int - 6 * signed 32-bit int - 8 * unsigned 64-bit int - 9 * unsigned 128-bit int - 10 The unsigned 32-bit and 128-bit types may be used to store IPv4 and IPv6 addresses, respectively. The signed 32-bit integers are stored using the 2's complement representation. ### map - 7 A map data type contains a set of key/value pairs. Unlike other data types, the length information for maps indicates how many key/value pairs it contains, not its length in bytes. This size can be zero. See below for the algorithm used to determine the number of pairs in the hash. This algorithm is also used to determine the length of a field's payload. ### array - 11 An array type contains a set of ordered values. The length information for arrays indicates how many values it contains, not its length in bytes. This size can be zero. This type uses the same algorithm as maps for determining the length of a field's payload. ### data cache container - 12 This is a special data type that marks a container used to cache repeated data. For example, instead of repeating the string "United States" over and over in the database, we store it in the cache container and use pointers *into* this container instead. Nothing in the database will ever contain a pointer to this field itself. Instead, various fields will point into the container. The primary reason for making this a separate data type versus simply inlining the cached data is so that a database dumper tool can skip this cache when dumping the data section. The cache contents will end up being dumped as pointers into it are followed. ### end marker - 13 The end marker marks the end of the data section. It is not strictly necessary, but including this marker allows a data section deserializer to process a stream of input, rather than having to find the end of the section before beginning the deserialization. This data type is not followed by a payload, and its size is always zero. ### boolean - 14 A true or false value. The length information for a boolean type will always be 0 or 1, indicating the value. There is no payload for this field. ### float - 15 This is stored as an IEEE-754 float (binary32) in big-endian format. The length of a float is always 4 bytes. This type is provided primarily for completeness. Because of the way floating point numbers are stored, this type can easily lose precision when serialized and then deserialized. If this is an issue for you, consider using a double instead. ### Data Field Format Each field starts with a control byte. This control byte provides information about the field's data type and payload size. The first three bits of the control byte tell you what type the field is. If these bits are all 0, then this is an "extended" type, which means that the *next* byte contains the actual type. Otherwise, the first three bits will contain a number from 1 to 7, the actual type for the field. We've tried to assign the most commonly used types as numbers 1-7 as an optimization. With an extended type, the type number in the second byte is the number minus 7. In other words, an array (type 11) will be stored with a 0 for the type in the first byte and a 4 in the second. Here is an example of how the control byte may combine with the next byte to tell us the type: 001XXXXX pointer 010XXXXX UTF-8 string 110XXXXX unsigned 32-bit int (ASCII) 000XXXXX 00000011 unsigned 128-bit int (binary) 000XXXXX 00000100 array 000XXXXX 00000110 end marker #### Payload Size The next five bits in the control byte tell you how long the data field's payload is, except for maps and pointers. Maps and pointers use this size information a bit differently. See below. If the five bits are smaller than 29, then those bits are the payload size in bytes. For example: 01000010 UTF-8 string - 2 bytes long 01011100 UTF-8 string - 28 bytes long 11000001 unsigned 32-bit int - 1 byte long 00000011 00000011 unsigned 128-bit int - 3 bytes long If the five bits are equal to 29, 30, or 31, then use the following algorithm to calculate the payload size. If the value is 29, then the size is 29 + *the next byte after the type specifying bytes as an unsigned integer*. If the value is 30, then the size is 285 + *the next two bytes after the type specifying bytes as a single unsigned integer*. If the value is 31, then the size is 65,821 + *the next three bytes after the type specifying bytes as a single unsigned integer*. Some examples: 01011101 00110011 UTF-8 string - 80 bytes long In this case, the last five bits of the control byte equal 29. We treat the next byte as an unsigned integer. The next byte is 51, so the total size is (29 + 51) = 80. 01011110 00110011 00110011 UTF-8 string - 13,392 bytes long The last five bits of the control byte equal 30. We treat the next two bytes as a single unsigned integer. The next two bytes equal 13,107, so the total size is (285 + 13,107) = 13,392. 01011111 00110011 00110011 00110011 UTF-8 string - 3,421,264 bytes long The last five bits of the control byte equal 31. We treat the next three bytes as a single unsigned integer. The next three bytes equal 3,355,443, so the total size is (65,821 + 3,355,443) = 3,421,264. This means that the maximum payload size for a single field is 16,843,036 bytes. The binary number types always have a known size, but for consistency's sake, the control byte will always specify the correct size for these types. #### Maps Maps use the size in the control byte (and any following bytes) to indicate the number of key/value pairs in the map, not the size of the payload in bytes. This means that the maximum number of pairs for a single map is 16,843,036. Maps are laid out with each key followed by its value, followed by the next pair, etc. The keys are **always** UTF-8 strings. The values may be any data type, including maps or pointers. Once we know the number of pairs, we can look at each pair in turn to determine the size of the key and the key name, as well as the value's type and payload. #### Pointers Pointers use the last five bits in the control byte to calculate the pointer value. To calculate the pointer value, we start by subdividing the five bits into two groups. The first two bits indicate the size, and the next three bits are part of the value, so we end up with a control byte breaking down like this: 001SSVVV. The size can be 0, 1, 2, or 3. If the size is 0, the pointer is built by appending the next byte to the last three bits to produce an 11-bit value. If the size is 1, the pointer is built by appending the next two bytes to the last three bits to produce a 19-bit value + 2048. If the size is 2, the pointer is built by appending the next three bytes to the last three bits to produce a 27-bit value + 526336. Finally, if the size is 3, the pointer's value is contained in the next four bytes as a 32-bit value. In this case, the last three bits of the control byte are ignored. This means that we are limited to 4GB of address space for pointers, so the data section size for the database is limited to 4GB. ## Reference Implementations ### Writer * [Perl](https://github.com/maxmind/MaxMind-DB-Writer-perl) ### Reader * [C](https://github.com/maxmind/libmaxminddb) * [C#](https://github.com/maxmind/MaxMind-DB-Reader-dotnet) * [Java](https://github.com/maxmind/MaxMind-DB-Reader-java) * [Perl](https://github.com/maxmind/MaxMind-DB-Reader-perl) * [PHP](https://github.com/maxmind/MaxMind-DB-Reader-php) * [Python](https://github.com/maxmind/MaxMind-DB-Reader-python) * [Ruby](https://github.com/maxmind/MaxMind-DB-Reader-ruby) ## Authors This specification was created by the following authors: * Greg Oschwald \ * Dave Rolsky \ * Boris Zentner \ ## License This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit [http://creativecommons.org/licenses/by-sa/3.0/](http://creativecommons.org/licenses/by-sa/3.0/) or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/README.md000066400000000000000000000002261507532544400247530ustar00rootroot00000000000000MaxMind DB is a binary file format that stores data indexed by IP address subnets (IPv4 or IPv6). This repository contains the spec for that format. golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/bad-data/000077500000000000000000000000001507532544400251315ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/bad-data/README.md000066400000000000000000000006041507532544400264100ustar00rootroot00000000000000These are corrupt databases that have been know to cause problems such as segfaults or unhandled errors on one or more MaxMind DB reader implementations. Implementations _should_ return an appropriate error or raise an exception on these databases. If you find a corrupt test-sized database that crashes a MMDB reader library, please feel free to add it here by creating a pull request. golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/bad-data/libmaxminddb/000077500000000000000000000000001507532544400275635ustar00rootroot00000000000000libmaxminddb-offset-integer-overflow.mmdb000066400000000000000000000006341507532544400375620ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/bad-data/libmaxminddb%%%%%% 59EQ%]!%"%#%$% %0:@BipG1.1.1.8 ipG1.1.1.4BipG1.1.1.2BipG1.1.1.1BipH1.1.1.32MaxMind.com[binary_format_major_versio88888888888888n[binary_format_minor_versionKbuild_epochVdMdatabase_typeDTestKdescriptionBenMTest DatabaseBzhUTest Database ChineseJip_versionIlanguagesBenBzhJnode_coungolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/bad-data/maxminddb-golang/000077500000000000000000000000001507532544400303415ustar00rootroot00000000000000cyclic-data-structure.mmdb000066400000000000000000000052531507532544400353430ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/bad-data/maxminddb-golang4sssss s s s s sssssssssssssssssss s!s"s#s$s%s&s's(s)s*s+s,s-s.s/s0s1s2s3s4s5s6s7s8s9s:s;s<s=s>s?s@sAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQRsSsTsUsVsWsXsYsZs[s\s]s^s_s`sasbscsdsesfgxshisjskslsmsnsosspqsrssstsusvswssyzs{s|s}s~sssssssssssssssssssssssssssssssssssssssssssss`ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss ss  s ss ssssssssssssssssss s!s"3s#$s%s&s's(s)s*s+s,s-s.s/ss1s2s`s`s5ss67ss89ss:s;s<s=>s?ss@sABssCDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs[s\s]s^s_s`sasbscsdsesfsgshsisjskslsmsnsospsqsrssEarrayGbooleanEbytes*Fdoubleh@Eg?[Efloat?Eint32CmapDmapXFarrayX Lutf8_stringXEhelloGuint128?Fuint16dFuint32Fuint64Kutf8_stringRunicode! ☯ - ♫MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochX2|Mdatabase_typeWMaxMind DB Decoder TestKdescriptionBen])MaxMind DB Decoder Test database - contains every MaxMind DB data typeJip_versionIlanguagesBenJnode_countsKrecord_sizeinvalid-bytes-length.mmdb000066400000000000000000000000401507532544400351460ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/bad-data/maxminddb-golangMaxMind.comKdescriptionBeninvalid-data-record-offset.mmdb000066400000000000000000000005071507532544400362220ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/bad-data/maxminddb-golangMaxMind.com[binarybcdefghijkmnopqstuwxyz{|};Iinvalid-map-key-length.mmdb000066400000000000000000000052531507532544400353760ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/bad-data/maxminddb-golang4sssss s s s s sssssssssssssssssss s!s"s#s$s%s&s's(s)s*s+s,s-s.s/s0s1s2s3s4s5s6s7s8s9s:s;s<s=s>s?s@sAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQRsSsTsUsVsWsXsYsZs[s\s]s^s_s`sasbscsdsesfgxshisjskslsmsnsosspqsrssstsusvswssyzs{s|s}s~sssssssssssssssssssssssssssssssssssssssssssss`sssssssssssssssssssssssssssssssssssssssssssssbroken pipesssssssssssssssssssssssssssssssssssssssssssssss ss  s ss ssssssssssssssssss s!s"3s#$s%s&s's(s)s*s+s,s-s.s/ss1s2s`s`s5ss67ss89ss:s;s<s=>s?ss@sABssCDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs[s\s]s^s_s`sasbscsdsesfsgshsisjskslsmsnsospsqsrssEarrayGbooleanEbytes*Fdoubleh@Eg?[Efloat?Eint32_mapDmapXFarrayX  Lutf8_stringXEhelloGuint128Fuint16dFuint32Fuint64Kutf8_stringRunicode! ☯ - ♫MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochX2|Mdatabase_typeWMaxMind DB Decoder TestKdescriptionBen])MaxMind DB Decoder Test database - contains every MaxMind DB data typeJip_versionIlanguagesBenJnode_countsKrecord_sizeinvalid-string-length.mmdb000066400000000000000000000002731507532544400353360ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/bad-data/maxminddb-golangDmap2EarrayDmap3AaAbAcMaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochX2|Mdatabase_type]MaxMind DB Nested Data StructuresKdescription metadata-is-an-uint128.mmdb000066400000000000000000000000201507532544400351100ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/bad-data/maxminddb-golangMaxMind.comunexpected-bytes.mmdb000066400000000000000000000044351507532544400344210ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/bad-data/maxminddb-golangs's(s)s*s+s,s-s.s/s0s1s2s3s4s5s6s7s8s9s:s;s<s=s>s?s@sAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQRsSsTsUsVsWsXsYsZs[s\s]s^s_s`sasbscsdsesfgxshisjskslsmsnsosspqsrssstsusvswssyzs{s|s}s~sssssssssssssssssssssssssssssssssssssssssssss`ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss ss  s ss ssssssssssssssssss s!s"3s#$s%s&s's(s)s*s+s,s-s.s/s0s1s2s`s`s5ss67ss89ss:s;s<s=>s?ss@sABssCDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs[s\s]s^s_s`sasbscsdsesfsgshsisjskslsmsnsospsqsrssDmap1Dmap2EarrayDmap3AaAbAcMaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochX2|Mdatabase_type]MaxMind DB Nested Data StructuresKdescriptionBen]@MaxMind DB Nested Data Structures Test database - contains deeply nested map/array structuresJip_versionIlanguagesgolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/bad-data/maxminddb-python/000077500000000000000000000000001507532544400304135ustar00rootroot00000000000000bad-unicode-in-map-key.mmdb000066400000000000000000000067171507532544400353270ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/bad-data/maxminddb-python, S,ӽ,,ӳ,,binary_foSmat_minor_vMrsionKb@ild_epoch^@Mdatabase}typeDTestKdescriptionBenMTest DatabaseBzhUTest Database Chine,,,,,,ӳӸӳ5ӷ,:>@PF::0/6˫MaxMindffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdffffffffffffffffffffffffffffffffffeffffffffffffffffQffdfffffffffffffffffcom[binary_format_Vajor_version[bi_T1x2.1@1B.1.1.32MaxMind.com[binry_formonKbuild_epochHMdatabase_typeDTestKdescriptionBenMTest DatabaseBzhUTest Database ChineseJiN_verbinary_foSmat_minor_vMrsionKb@ild_epoch^base}typeDTestKdescriptionBenMTest DatabaseBzhUTest Datine,ӳӸӳ5ӷ,:>@PF::0/6˫MaxMindfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffQffdfffffffffffffffffcomajor_versionn_T1x2.1@1B.1.1.32MaxMind.com[binary_formonKochHhdatabase_typeDTestKdescriptionBenMTeseseJip_ver@:0/4onKbuild_SӤDEFGH,ӡӐooYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYaYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY@[binary_format_major_ersion[b_monKbuiGH,ޭ,,,,,,,,,,@"@#@$@,@3@5@7@ @@@_versinKbuilffӳffffffffffffffffffffffffffffffffffffffSfffbffffffffffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffIfffffffffffffffffffffffffffffffffIffffffffffffffffffffffffffffdffffffffffffffffffffcom[biary_format_major_version[bi_J11B.1.1.32MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epoch^HMdatabase_typeDTestKdescriptionBenMTest DatabaseBzhUTjst Database ChineseJip_versionIlanguagesBenBzhJnode_countKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/perltidyrc000066400000000000000000000003301507532544400255740ustar00rootroot00000000000000--blank-lines-before-packages=0 --iterations=2 --no-outdent-long-comments -b -bar -boc -ci=4 -i=4 -l=78 -nolq -se -wbb="% + - * / x != == >= <= =~ !~ < > | & >= < = **= += *= &= <<= &&= -= /= |= >>= ||= .= %= ^= x=" golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/source-data/000077500000000000000000000000001507532544400257035ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/source-data/GeoIP2-Anonymous-IP-Test.json000066400000000000000000000017411507532544400330370ustar00rootroot00000000000000[ { "::1.2.0.0/112" : { "is_anonymous" : true, "is_anonymous_vpn" : true } }, { "::1.124.213.1/128" : { "is_anonymous" : true, "is_anonymous_vpn" : true, "is_tor_exit_node" : true } }, { "::81.2.69.0/120" : { "is_anonymous" : true, "is_anonymous_vpn" : true, "is_hosting_provider" : true, "is_public_proxy" : true, "is_residential_proxy" : true, "is_tor_exit_node" : true } }, { "::71.160.223.0/120" : { "is_anonymous" : true, "is_hosting_provider" : true } }, { "::186.30.236.0/120" : { "is_anonymous" : true, "is_public_proxy" : true } }, { "::65.0.0.0/109" : { "is_anonymous" : true, "is_tor_exit_node" : true } }, { "abcd:1000::/112" : { "is_anonymous" : true, "is_public_proxy" : true } } ] golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/source-data/GeoIP2-City-Test.json000066400000000000000000013550701507532544400314610ustar00rootroot00000000000000[ { "2001:218::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:220::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 37, "longitude" : 127.5, "time_zone" : "Asia/Seoul" }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "::214.0.0.0/120" : { "city" : { "geoname_id" : 1880252, "names" : { "de" : "Singapur", "en" : "Singapore", "es" : "Singapur", "fr" : "Singapour", "ja" : "シンガポール", "pt-BR" : "Singapura", "ru" : "Сингапур", "zh-CN" : "新加坡" } }, "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1880251, "iso_code" : "SG", "names" : { "de" : "Singapur", "en" : "Singapore", "es" : "Singapur", "fr" : "Singapour", "ja" : "シンガポール", "pt-BR" : "Singapura", "ru" : "Сингапур", "zh-CN" : "新加坡" } }, "location" : { "accuracy_radius" : 10, "latitude" : 1.336, "longitude" : 103.7716, "time_zone" : "Asia/Singapore" }, "postal" : { "code" : "59" }, "registered_country" : { "geoname_id" : 1880251, "iso_code" : "SG", "names" : { "de" : "Singapur", "en" : "Singapore", "es" : "Singapur", "fr" : "Singapour", "ja" : "シンガポール", "pt-BR" : "Singapura", "ru" : "Сингапур", "zh-CN" : "新加坡" } } } }, { "::214.0.1.0/120" : { "city" : { "geoname_id" : 2158177, "names" : { "de" : "Melbourne", "en" : "Melbourne", "es" : "Melbourne", "fr" : "Melbourne", "ja" : "メルボルン", "pt-BR" : "Melbourne", "ru" : "Мельбурн", "zh-CN" : "墨尔本" } }, "continent" : { "code" : "OC", "geoname_id" : 6255151, "names" : { "de" : "Ozeanien", "en" : "Oceania", "es" : "Oceanía", "fr" : "Océanie", "ja" : "オセアニア", "pt-BR" : "Oceania", "ru" : "Океания", "zh-CN" : "大洋洲" } }, "country" : { "geoname_id" : 2077456, "iso_code" : "AU", "names" : { "de" : "Australien", "en" : "Australia", "es" : "Australia", "fr" : "Australie", "ja" : "オーストラリア", "pt-BR" : "Austrália", "ru" : "Австралия", "zh-CN" : "澳大利亚" } }, "location" : { "accuracy_radius" : 20, "latitude" : -37.8159, "longitude" : 144.9669, "time_zone" : "Australia/Melbourne" }, "postal" : { "code" : "3000" }, "registered_country" : { "geoname_id" : 2077456, "iso_code" : "AU", "names" : { "de" : "Australien", "en" : "Australia", "es" : "Australia", "fr" : "Australie", "ja" : "オーストラリア", "pt-BR" : "Austrália", "ru" : "Австралия", "zh-CN" : "澳大利亚" } }, "subdivisions" : [ { "geoname_id" : 2145234, "iso_code" : "VIC", "names" : { "en" : "Victoria", "pt-BR" : "Vitória", "ru" : "Виктория" } } ] } }, { "2001:230::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 37, "longitude" : 127.5, "time_zone" : "Asia/Seoul" }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:238::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1668284, "iso_code" : "TW", "names" : { "de" : "Taiwan", "en" : "Taiwan", "es" : "Taiwán", "fr" : "Taïwan", "ja" : "台湾", "pt-BR" : "Taiwan", "ru" : "Тайвань", "zh-CN" : "台湾" } }, "location" : { "accuracy_radius" : 100, "latitude" : 24, "longitude" : 121, "time_zone" : "Asia/Taipei" }, "registered_country" : { "geoname_id" : 1668284, "iso_code" : "TW", "names" : { "de" : "Taiwan", "en" : "Taiwan", "es" : "Taiwán", "fr" : "Taïwan", "ja" : "台湾", "pt-BR" : "Taiwan", "ru" : "Тайвань", "zh-CN" : "台湾" } } } }, { "2001:240::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:250::/31" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35, "longitude" : 105 }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "2001:252::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35, "longitude" : 105 }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "2001:254::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35, "longitude" : 105 }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "2001:256::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35, "longitude" : 105 }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "2001:258::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:260::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:268::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:270::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 37, "longitude" : 127.5, "time_zone" : "Asia/Seoul" }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:278::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:280::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 37, "longitude" : 127.5, "time_zone" : "Asia/Seoul" }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:288::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1668284, "iso_code" : "TW", "names" : { "de" : "Taiwan", "en" : "Taiwan", "es" : "Taiwán", "fr" : "Taïwan", "ja" : "台湾", "pt-BR" : "Taiwan", "ru" : "Тайвань", "zh-CN" : "台湾" } }, "location" : { "accuracy_radius" : 100, "latitude" : 24, "longitude" : 121, "time_zone" : "Asia/Taipei" }, "registered_country" : { "geoname_id" : 1668284, "iso_code" : "TW", "names" : { "de" : "Taiwan", "en" : "Taiwan", "es" : "Taiwán", "fr" : "Taïwan", "ja" : "台湾", "pt-BR" : "Taiwan", "ru" : "Тайвань", "zh-CN" : "台湾" } } } }, { "2001:290::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 37, "longitude" : 127.5, "time_zone" : "Asia/Seoul" }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:298::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2a0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2a8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2b0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 37, "longitude" : 127.5, "time_zone" : "Asia/Seoul" }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:2b8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 37, "longitude" : 127.5, "time_zone" : "Asia/Seoul" }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:2c0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2c8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2d8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 37, "longitude" : 127.5, "time_zone" : "Asia/Seoul" }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:2e0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1819730, "iso_code" : "HK", "names" : { "de" : "Hongkong", "en" : "Hong Kong", "es" : "Hong Kong", "fr" : "Hong Kong", "ja" : "香港", "pt-BR" : "Hong Kong", "ru" : "Гонконг", "zh-CN" : "香港" } }, "location" : { "accuracy_radius" : 100, "latitude" : 22.25, "longitude" : 114.16667, "time_zone" : "Asia/Hong_Kong" }, "registered_country" : { "geoname_id" : 1819730, "iso_code" : "HK", "names" : { "de" : "Hongkong", "en" : "Hong Kong", "es" : "Hong Kong", "fr" : "Hong Kong", "ja" : "香港", "pt-BR" : "Hong Kong", "ru" : "Гонконг", "zh-CN" : "香港" } } } }, { "2001:2e8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2f0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2f8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2a02:cf40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:cf80::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } }, "location" : { "accuracy_radius" : 100, "latitude" : 31.5, "longitude" : 34.75, "time_zone" : "Asia/Jerusalem" }, "registered_country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } } } }, { "2a02:cfc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d000::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47.00016, "longitude" : 8.01427, "time_zone" : "Europe/Zurich" }, "registered_country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } } } }, { "2a02:d040::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:d080::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 290291, "iso_code" : "BH", "names" : { "de" : "Bahrain", "en" : "Bahrain", "es" : "Bahréin", "fr" : "Bahreïn", "ja" : "バーレーン", "pt-BR" : "Bahrain", "ru" : "Бахрейн", "zh-CN" : "巴林" } }, "location" : { "accuracy_radius" : 100, "latitude" : 26, "longitude" : 50.5, "time_zone" : "Asia/Bahrain" }, "registered_country" : { "geoname_id" : 290291, "iso_code" : "BH", "names" : { "de" : "Bahrain", "en" : "Bahrain", "es" : "Bahréin", "fr" : "Bahreïn", "ja" : "バーレーン", "pt-BR" : "Bahrain", "ru" : "Бахрейн", "zh-CN" : "巴林" } } } }, { "2a02:d0c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:d100::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:d140::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:d180::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d1c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 42.83333, "longitude" : 12.83333, "time_zone" : "Europe/Rome" }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:d200::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 660013, "is_in_european_union" : true, "iso_code" : "FI", "names" : { "de" : "Finnland", "en" : "Finland", "es" : "Finlandia", "fr" : "Finlande", "ja" : "フィンランド共和国", "pt-BR" : "Finlândia", "ru" : "Финляндия", "zh-CN" : "芬兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 64, "longitude" : 26, "time_zone" : "Europe/Helsinki" }, "registered_country" : { "geoname_id" : 660013, "is_in_european_union" : true, "iso_code" : "FI", "names" : { "de" : "Finnland", "en" : "Finland", "es" : "Finlandia", "fr" : "Finlande", "ja" : "フィンランド共和国", "pt-BR" : "Finlândia", "ru" : "Финляндия", "zh-CN" : "芬兰" } } } }, { "2a02:d240::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 630336, "iso_code" : "BY", "names" : { "de" : "Weißrussland", "en" : "Belarus", "es" : "Bielorrusia", "fr" : "Biélorussie", "ja" : "ベラルーシ共和国", "pt-BR" : "Bielo-Rússia", "ru" : "Беларусь", "zh-CN" : "白俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 53, "longitude" : 28, "time_zone" : "Europe/Minsk" }, "registered_country" : { "geoname_id" : 630336, "iso_code" : "BY", "names" : { "de" : "Weißrussland", "en" : "Belarus", "es" : "Bielorrusia", "fr" : "Biélorussie", "ja" : "ベラルーシ共和国", "pt-BR" : "Bielo-Rússia", "ru" : "Беларусь", "zh-CN" : "白俄罗斯" } } } }, { "2a02:d280::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 49.75, "longitude" : 15, "time_zone" : "Europe/Prague" }, "registered_country" : { "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } } } }, { "2a02:d2c0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 32, "longitude" : 53, "time_zone" : "Asia/Tehran" }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:d300::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 49, "longitude" : 32 }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:d340::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d380::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 32, "longitude" : 53, "time_zone" : "Asia/Tehran" }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:d3c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:d400::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 719819, "is_in_european_union" : true, "iso_code" : "HU", "names" : { "de" : "Ungarn", "en" : "Hungary", "es" : "Hungría", "fr" : "Hongrie", "ja" : "ハンガリー共和国", "pt-BR" : "Hungria", "ru" : "Венгрия", "zh-CN" : "匈牙利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47, "longitude" : 20, "time_zone" : "Europe/Budapest" }, "registered_country" : { "geoname_id" : 719819, "is_in_european_union" : true, "iso_code" : "HU", "names" : { "de" : "Ungarn", "en" : "Hungary", "es" : "Hungría", "fr" : "Hongrie", "ja" : "ハンガリー共和国", "pt-BR" : "Hungria", "ru" : "Венгрия", "zh-CN" : "匈牙利" } } } }, { "2a02:d440::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:d480::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d4c0::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 660013, "is_in_european_union" : true, "iso_code" : "FI", "names" : { "de" : "Finnland", "en" : "Finland", "es" : "Finlandia", "fr" : "Finlande", "ja" : "フィンランド共和国", "pt-BR" : "Finlândia", "ru" : "Финляндия", "zh-CN" : "芬兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 64, "longitude" : 26, "time_zone" : "Europe/Helsinki" }, "registered_country" : { "geoname_id" : 660013, "is_in_european_union" : true, "iso_code" : "FI", "names" : { "de" : "Finnland", "en" : "Finland", "es" : "Finlandia", "fr" : "Finlande", "ja" : "フィンランド共和国", "pt-BR" : "Finlândia", "ru" : "Финляндия", "zh-CN" : "芬兰" } } } }, { "2a02:d4e0::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d500::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "location" : { "accuracy_radius" : 100, "latitude" : 48.69096, "longitude" : 9.14062, "time_zone" : "Europe/Vaduz" } } }, { "2a02:d540::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:d580::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d5c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2510769, "is_in_european_union" : true, "iso_code" : "ES", "names" : { "de" : "Spanien", "en" : "Spain", "es" : "España", "fr" : "Espagne", "ja" : "スペイン", "pt-BR" : "Espanha", "ru" : "Испания", "zh-CN" : "西班牙" } }, "location" : { "accuracy_radius" : 100, "latitude" : 40, "longitude" : -4 }, "registered_country" : { "geoname_id" : 2510769, "is_in_european_union" : true, "iso_code" : "ES", "names" : { "de" : "Spanien", "en" : "Spain", "es" : "España", "fr" : "Espagne", "ja" : "スペイン", "pt-BR" : "Espanha", "ru" : "Испания", "zh-CN" : "西班牙" } } } }, { "2a02:d600::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d640::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d680::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:d6a0::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d6c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 732800, "is_in_european_union" : true, "iso_code" : "BG", "names" : { "de" : "Bulgarien", "en" : "Bulgaria", "es" : "Bulgaria", "fr" : "Bulgarie", "ja" : "ブルガリア共和国", "pt-BR" : "Bulgária", "ru" : "Болгария", "zh-CN" : "保加利亚" } }, "location" : { "accuracy_radius" : 100, "latitude" : 43, "longitude" : 25, "time_zone" : "Europe/Sofia" }, "registered_country" : { "geoname_id" : 732800, "is_in_european_union" : true, "iso_code" : "BG", "names" : { "de" : "Bulgarien", "en" : "Bulgaria", "es" : "Bulgaria", "fr" : "Bulgarie", "ja" : "ブルガリア共和国", "pt-BR" : "Bulgária", "ru" : "Болгария", "zh-CN" : "保加利亚" } } } }, { "2a02:d700::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d740::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47.00016, "longitude" : 8.01427, "time_zone" : "Europe/Zurich" }, "registered_country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } } } }, { "2a02:d780::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 32, "longitude" : 53, "time_zone" : "Asia/Tehran" }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:d7c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d800::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 25, "time_zone" : "Europe/Bucharest" }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } } } }, { "2a02:d840::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:d880::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:d8c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:d900::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:d940::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2802361, "is_in_european_union" : true, "iso_code" : "BE", "names" : { "de" : "Belgien", "en" : "Belgium", "es" : "Bélgica", "fr" : "Belgique", "ja" : "ベルギー王国", "pt-BR" : "Bélgica", "ru" : "Бельгия", "zh-CN" : "比利时" } }, "location" : { "accuracy_radius" : 100, "latitude" : 50.83333, "longitude" : 4, "time_zone" : "Europe/Brussels" }, "registered_country" : { "geoname_id" : 2802361, "is_in_european_union" : true, "iso_code" : "BE", "names" : { "de" : "Belgien", "en" : "Belgium", "es" : "Bélgica", "fr" : "Belgique", "ja" : "ベルギー王国", "pt-BR" : "Bélgica", "ru" : "Бельгия", "zh-CN" : "比利时" } } } }, { "2a02:d980::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "location" : { "accuracy_radius" : 100, "latitude" : 39.05901, "longitude" : 34.91155, "time_zone" : "Europe/Istanbul" }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:d9c0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "location" : { "accuracy_radius" : 100, "latitude" : 39.05901, "longitude" : 34.91155, "time_zone" : "Europe/Istanbul" }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:da00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:da40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:da80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47.33333, "longitude" : 13.33333, "time_zone" : "Europe/Vienna" }, "registered_country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } } } }, { "2a02:dac0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:db00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:db40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 25, "time_zone" : "Europe/Bucharest" }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } } } }, { "2a02:db80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dbc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dc00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dc40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "location" : { "accuracy_radius" : 100, "latitude" : 39.05901, "longitude" : 34.91155, "time_zone" : "Europe/Istanbul" }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:dc80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dcc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 49, "longitude" : 32 }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:dd00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 783754, "iso_code" : "AL", "names" : { "de" : "Albanien", "en" : "Albania", "es" : "Albania", "fr" : "Albanie", "ja" : "アルバニア共和国", "pt-BR" : "Albânia", "ru" : "Албания", "zh-CN" : "阿尔巴尼亚" } }, "location" : { "accuracy_radius" : 100, "latitude" : 41, "longitude" : 20, "time_zone" : "Europe/Tirane" }, "registered_country" : { "geoname_id" : 783754, "iso_code" : "AL", "names" : { "de" : "Albanien", "en" : "Albania", "es" : "Albania", "fr" : "Albanie", "ja" : "アルバニア共和国", "pt-BR" : "Albânia", "ru" : "Албания", "zh-CN" : "阿尔巴尼亚" } } } }, { "2a02:dd40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:dd80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:ddc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:de00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:de40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } }, "location" : { "accuracy_radius" : 100, "latitude" : 31.5, "longitude" : 34.75, "time_zone" : "Asia/Jerusalem" }, "registered_country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } } } }, { "2a02:de80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dec0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 272103, "iso_code" : "LB", "names" : { "de" : "Libanon", "en" : "Lebanon", "es" : "Líbano", "fr" : "Liban", "ja" : "レバノン共和国", "pt-BR" : "Líbano", "ru" : "Ливан", "zh-CN" : "黎巴嫩" } }, "location" : { "accuracy_radius" : 100, "latitude" : 33.83333, "longitude" : 35.83333, "time_zone" : "Asia/Beirut" }, "registered_country" : { "geoname_id" : 272103, "iso_code" : "LB", "names" : { "de" : "Libanon", "en" : "Lebanon", "es" : "Líbano", "fr" : "Liban", "ja" : "レバノン共和国", "pt-BR" : "Líbano", "ru" : "Ливан", "zh-CN" : "黎巴嫩" } } } }, { "2a02:df00::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 32, "longitude" : 53, "time_zone" : "Asia/Tehran" }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:df40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "location" : { "accuracy_radius" : 100, "latitude" : 39.05901, "longitude" : 34.91155, "time_zone" : "Europe/Istanbul" }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:df80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:dfc0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 32, "longitude" : 53, "time_zone" : "Asia/Tehran" }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:e000::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e040::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:e080::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 285570, "iso_code" : "KW", "names" : { "de" : "Kuwait", "en" : "Kuwait", "es" : "Kuwait", "fr" : "Koweït", "ja" : "クウェート", "pt-BR" : "Kuwait", "ru" : "Кувейт", "zh-CN" : "科威特" } }, "location" : { "accuracy_radius" : 100, "latitude" : 29.5, "longitude" : 47.75, "time_zone" : "Asia/Kuwait" }, "registered_country" : { "geoname_id" : 285570, "iso_code" : "KW", "names" : { "de" : "Kuwait", "en" : "Kuwait", "es" : "Kuwait", "fr" : "Koweït", "ja" : "クウェート", "pt-BR" : "Kuwait", "ru" : "Кувейт", "zh-CN" : "科威特" } } } }, { "2a02:e0c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47.00016, "longitude" : 8.01427, "time_zone" : "Europe/Zurich" }, "registered_country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } } } }, { "2a02:e100::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:e140::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:e180::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:e1c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:e200::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47.33333, "longitude" : 13.33333, "time_zone" : "Europe/Vienna" }, "registered_country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } } } }, { "2a02:e220::/30" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 25, "longitude" : 45, "time_zone" : "Asia/Riyadh" }, "registered_country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } } } }, { "2a02:e240::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e280::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e2c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 42.83333, "longitude" : 12.83333, "time_zone" : "Europe/Rome" }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:e300::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 630336, "iso_code" : "BY", "names" : { "de" : "Weißrussland", "en" : "Belarus", "es" : "Bielorrusia", "fr" : "Biélorussie", "ja" : "ベラルーシ共和国", "pt-BR" : "Bielo-Rússia", "ru" : "Беларусь", "zh-CN" : "白俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 53, "longitude" : 28, "time_zone" : "Europe/Minsk" }, "registered_country" : { "geoname_id" : 630336, "iso_code" : "BY", "names" : { "de" : "Weißrussland", "en" : "Belarus", "es" : "Bielorrusia", "fr" : "Biélorussie", "ja" : "ベラルーシ共和国", "pt-BR" : "Bielo-Rússia", "ru" : "Беларусь", "zh-CN" : "白俄罗斯" } } } }, { "2a02:e340::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:e380::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 42.83333, "longitude" : 12.83333, "time_zone" : "Europe/Rome" }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:e3c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e400::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:e440::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e480::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e4c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:e500::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e540::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 6290252, "iso_code" : "RS", "names" : { "de" : "Serbien", "en" : "Serbia", "es" : "Serbia", "fr" : "Serbie", "ja" : "セルビア", "pt-BR" : "Sérvia", "ru" : "Сербия", "zh-CN" : "塞尔维亚" } }, "location" : { "accuracy_radius" : 100, "latitude" : 44.81892, "longitude" : 20.45998, "time_zone" : "Europe/Belgrade" }, "registered_country" : { "geoname_id" : 6290252, "iso_code" : "RS", "names" : { "de" : "Serbien", "en" : "Serbia", "es" : "Serbia", "fr" : "Serbie", "ja" : "セルビア", "pt-BR" : "Sérvia", "ru" : "Сербия", "zh-CN" : "塞尔维亚" } } } }, { "2a02:e580::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:e5c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e600::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e620::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e640::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e680::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 248816, "iso_code" : "JO", "names" : { "de" : "Jordanien", "en" : "Hashemite Kingdom of Jordan", "es" : "Jordania", "fr" : "Jordanie", "ja" : "ヨルダン・ハシミテ王国", "pt-BR" : "Jordânia", "ru" : "Иордания", "zh-CN" : "约旦" } }, "location" : { "accuracy_radius" : 100, "latitude" : 31, "longitude" : 36, "time_zone" : "Asia/Amman" }, "registered_country" : { "geoname_id" : 248816, "iso_code" : "JO", "names" : { "de" : "Jordanien", "en" : "Hashemite Kingdom of Jordan", "es" : "Jordania", "fr" : "Jordanie", "ja" : "ヨルダン・ハシミテ王国", "pt-BR" : "Jordânia", "ru" : "Иордания", "zh-CN" : "约旦" } } } }, { "2a02:e6c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e700::/29" : { "continent" : { "code" : "AF", "geoname_id" : 6255146, "names" : { "de" : "Afrika", "en" : "Africa", "es" : "África", "fr" : "Afrique", "ja" : "アフリカ", "pt-BR" : "África", "ru" : "Африка", "zh-CN" : "非洲" } }, "country" : { "geoname_id" : 2215636, "iso_code" : "LY", "names" : { "de" : "Libysch-Arabische Dschamahirija", "en" : "Libya", "es" : "Libia, República Árabe", "fr" : "Libye", "ja" : "社会主義人民リビア・アラブ国", "pt-BR" : "Líbia Árabe Jamahiriya", "ru" : "Ливия", "zh-CN" : "阿拉伯利比亚民众国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 28, "longitude" : 17, "time_zone" : "Africa/Tripoli" }, "registered_country" : { "geoname_id" : 2215636, "iso_code" : "LY", "names" : { "de" : "Libysch-Arabische Dschamahirija", "en" : "Libya", "es" : "Libia, República Árabe", "fr" : "Libye", "ja" : "社会主義人民リビア・アラブ国", "pt-BR" : "Líbia Árabe Jamahiriya", "ru" : "Ливия", "zh-CN" : "阿拉伯利比亚民众国" } } } }, { "2a02:e740::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e780::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "location" : { "accuracy_radius" : 100, "latitude" : 39.05901, "longitude" : 34.91155, "time_zone" : "Europe/Istanbul" }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:e7c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:e800::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e840::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e880::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e900::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2963597, "is_in_european_union" : true, "iso_code" : "IE", "names" : { "de" : "Irland", "en" : "Ireland", "es" : "República de Irlanda", "fr" : "Irlande", "ja" : "アイルランド", "pt-BR" : "Irlanda", "ru" : "Ирландия", "zh-CN" : "爱尔兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 53, "longitude" : -8, "time_zone" : "Europe/Dublin" }, "registered_country" : { "geoname_id" : 2963597, "is_in_european_union" : true, "iso_code" : "IE", "names" : { "de" : "Irland", "en" : "Ireland", "es" : "República de Irlanda", "fr" : "Irlande", "ja" : "アイルランド", "pt-BR" : "Irlanda", "ru" : "Ирландия", "zh-CN" : "爱尔兰" } } } }, { "2a02:e940::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 25, "time_zone" : "Europe/Bucharest" }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } } } }, { "2a02:e980::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } }, "location" : { "accuracy_radius" : 100, "latitude" : 31.5, "longitude" : 34.75, "time_zone" : "Asia/Jerusalem" }, "registered_country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } } } }, { "2a02:e9c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:ea00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47.00016, "longitude" : 8.01427, "time_zone" : "Europe/Zurich" }, "registered_country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } } } }, { "2a02:ea40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:ea80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:eac0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:eb00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:eb40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:eb80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ebc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:ec00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:ec40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ec80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "location" : { "accuracy_radius" : 100, "latitude" : 48.69096, "longitude" : 9.14062, "time_zone" : "Europe/Vaduz" } } }, { "2a02:ecc0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 587116, "iso_code" : "AZ", "names" : { "de" : "Aserbaidschan", "en" : "Azerbaijan", "es" : "Azerbaiyán", "fr" : "Azerbaïdjan", "ja" : "アゼルバイジャン共和国", "pt-BR" : "Azerbaijão", "ru" : "Азербайджан", "zh-CN" : "阿塞拜疆" } }, "location" : { "accuracy_radius" : 100, "latitude" : 40.5, "longitude" : 47.5, "time_zone" : "Asia/Baku" }, "registered_country" : { "geoname_id" : 587116, "iso_code" : "AZ", "names" : { "de" : "Aserbaidschan", "en" : "Azerbaijan", "es" : "Azerbaiyán", "fr" : "Azerbaïdjan", "ja" : "アゼルバイジャン共和国", "pt-BR" : "Azerbaijão", "ru" : "Азербайджан", "zh-CN" : "阿塞拜疆" } } } }, { "2a02:ed00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:ed40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "location" : { "accuracy_radius" : 100, "latitude" : 39.05901, "longitude" : 34.91155, "time_zone" : "Europe/Istanbul" }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:ed80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:edc0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 25, "longitude" : 45, "time_zone" : "Asia/Riyadh" }, "registered_country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } } } }, { "2a02:ee00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 49, "longitude" : 32 }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:ee40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ee80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:eec0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:ef00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ef40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ef80::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "location" : { "accuracy_radius" : 100, "latitude" : 39.05901, "longitude" : 34.91155, "time_zone" : "Europe/Istanbul" }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:efc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f000::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 49.75, "longitude" : 15, "time_zone" : "Europe/Prague" }, "registered_country" : { "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } } } }, { "2a02:f040::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 290291, "iso_code" : "BH", "names" : { "de" : "Bahrain", "en" : "Bahrain", "es" : "Bahréin", "fr" : "Bahreïn", "ja" : "バーレーン", "pt-BR" : "Bahrain", "ru" : "Бахрейн", "zh-CN" : "巴林" } }, "location" : { "accuracy_radius" : 100, "latitude" : 26, "longitude" : 50.5, "time_zone" : "Asia/Bahrain" }, "registered_country" : { "geoname_id" : 290291, "iso_code" : "BH", "names" : { "de" : "Bahrain", "en" : "Bahrain", "es" : "Bahréin", "fr" : "Bahreïn", "ja" : "バーレーン", "pt-BR" : "Bahrain", "ru" : "Бахрейн", "zh-CN" : "巴林" } } } }, { "2a02:f080::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 49, "longitude" : 32 }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:f0a0::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f0c0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 248816, "iso_code" : "JO", "names" : { "de" : "Jordanien", "en" : "Hashemite Kingdom of Jordan", "es" : "Jordania", "fr" : "Jordanie", "ja" : "ヨルダン・ハシミテ王国", "pt-BR" : "Jordânia", "ru" : "Иордания", "zh-CN" : "约旦" } }, "location" : { "accuracy_radius" : 100, "latitude" : 31, "longitude" : 36, "time_zone" : "Asia/Amman" }, "registered_country" : { "geoname_id" : 248816, "iso_code" : "JO", "names" : { "de" : "Jordanien", "en" : "Hashemite Kingdom of Jordan", "es" : "Jordania", "fr" : "Jordanie", "ja" : "ヨルダン・ハシミテ王国", "pt-BR" : "Jordânia", "ru" : "Иордания", "zh-CN" : "约旦" } } } }, { "2a02:f100::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f140::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:f180::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:f1c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 49, "longitude" : 32 }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:f200::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:f240::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 32, "longitude" : 53, "time_zone" : "Asia/Tehran" }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:f280::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:f2c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f300::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:f340::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:f380::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f3c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:f400::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 290557, "iso_code" : "AE", "names" : { "de" : "Vereinigte Arabische Emirate", "en" : "United Arab Emirates", "es" : "Emiratos Árabes Unidos", "fr" : "Émirats Arabes Unis", "ja" : "アラブ首長国連邦", "pt-BR" : "Emirados Árabes Unidos", "ru" : "Объединенные Арабские Эмираты", "zh-CN" : "阿拉伯联合酋长国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 24, "longitude" : 54, "time_zone" : "Asia/Dubai" }, "registered_country" : { "geoname_id" : 290557, "iso_code" : "AE", "names" : { "de" : "Vereinigte Arabische Emirate", "en" : "United Arab Emirates", "es" : "Emiratos Árabes Unidos", "fr" : "Émirats Arabes Unis", "ja" : "アラブ首長国連邦", "pt-BR" : "Emirados Árabes Unidos", "ru" : "Объединенные Арабские Эмираты", "zh-CN" : "阿拉伯联合酋长国" } } } }, { "2a02:f440::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f480::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:f4c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2510769, "is_in_european_union" : true, "iso_code" : "ES", "names" : { "de" : "Spanien", "en" : "Spain", "es" : "España", "fr" : "Espagne", "ja" : "スペイン", "pt-BR" : "Espanha", "ru" : "Испания", "zh-CN" : "西班牙" } }, "location" : { "accuracy_radius" : 100, "latitude" : 40, "longitude" : -4 }, "registered_country" : { "geoname_id" : 2510769, "is_in_european_union" : true, "iso_code" : "ES", "names" : { "de" : "Spanien", "en" : "Spain", "es" : "España", "fr" : "Espagne", "ja" : "スペイン", "pt-BR" : "Espanha", "ru" : "Испания", "zh-CN" : "西班牙" } } } }, { "2a02:f500::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f540::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f560::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f580::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 174982, "iso_code" : "AM", "names" : { "de" : "Armenien", "en" : "Armenia", "es" : "Armenia", "fr" : "Arménie", "ja" : "アルメニア共和国", "pt-BR" : "Armênia", "ru" : "Армения", "zh-CN" : "亚美尼亚" } }, "location" : { "accuracy_radius" : 100, "latitude" : 40, "longitude" : 45, "time_zone" : "Asia/Yerevan" }, "registered_country" : { "geoname_id" : 174982, "iso_code" : "AM", "names" : { "de" : "Armenien", "en" : "Armenia", "es" : "Armenia", "fr" : "Arménie", "ja" : "アルメニア共和国", "pt-BR" : "Armênia", "ru" : "Армения", "zh-CN" : "亚美尼亚" } } } }, { "2a02:f5c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:f600::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:f640::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:f680::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f6c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f700::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 272103, "iso_code" : "LB", "names" : { "de" : "Libanon", "en" : "Lebanon", "es" : "Líbano", "fr" : "Liban", "ja" : "レバノン共和国", "pt-BR" : "Líbano", "ru" : "Ливан", "zh-CN" : "黎巴嫩" } }, "location" : { "accuracy_radius" : 100, "latitude" : 33.83333, "longitude" : 35.83333, "time_zone" : "Asia/Beirut" }, "registered_country" : { "geoname_id" : 272103, "iso_code" : "LB", "names" : { "de" : "Libanon", "en" : "Lebanon", "es" : "Líbano", "fr" : "Liban", "ja" : "レバノン共和国", "pt-BR" : "Líbano", "ru" : "Ливан", "zh-CN" : "黎巴嫩" } } } }, { "2a02:f740::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:f780::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:f7c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:f800::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f840::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:f880::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:f8c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:f900::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 32, "longitude" : 53, "time_zone" : "Asia/Tehran" }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:f940::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 719819, "is_in_european_union" : true, "iso_code" : "HU", "names" : { "de" : "Ungarn", "en" : "Hungary", "es" : "Hungría", "fr" : "Hongrie", "ja" : "ハンガリー共和国", "pt-BR" : "Hungria", "ru" : "Венгрия", "zh-CN" : "匈牙利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47, "longitude" : 20, "time_zone" : "Europe/Budapest" }, "registered_country" : { "geoname_id" : 719819, "is_in_european_union" : true, "iso_code" : "HU", "names" : { "de" : "Ungarn", "en" : "Hungary", "es" : "Hungría", "fr" : "Hongrie", "ja" : "ハンガリー共和国", "pt-BR" : "Hungria", "ru" : "Венгрия", "zh-CN" : "匈牙利" } } } }, { "2a02:f980::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f9c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:fa00::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 25, "longitude" : 45, "time_zone" : "Asia/Riyadh" }, "registered_country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } } } }, { "2a02:fa40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "location" : { "accuracy_radius" : 100, "latitude" : 39.05901, "longitude" : 34.91155, "time_zone" : "Europe/Istanbul" }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:fa80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:fac0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:fb00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:fb40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:fb80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 42.83333, "longitude" : 12.83333, "time_zone" : "Europe/Rome" }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:fbc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:fc00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:fc40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2623032, "is_in_european_union" : true, "iso_code" : "DK", "names" : { "de" : "Dänemark", "en" : "Denmark", "es" : "Dinamarca", "fr" : "Danemark", "ja" : "デンマーク王国", "pt-BR" : "Dinamarca", "ru" : "Дания", "zh-CN" : "丹麦" } }, "location" : { "accuracy_radius" : 100, "latitude" : 56, "longitude" : 10, "time_zone" : "Europe/Copenhagen" }, "registered_country" : { "geoname_id" : 2623032, "is_in_european_union" : true, "iso_code" : "DK", "names" : { "de" : "Dänemark", "en" : "Denmark", "es" : "Dinamarca", "fr" : "Danemark", "ja" : "デンマーク王国", "pt-BR" : "Dinamarca", "ru" : "Дания", "zh-CN" : "丹麦" } } } }, { "2a02:fc80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:fcc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:fd00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:fd40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 42.83333, "longitude" : 12.83333, "time_zone" : "Europe/Rome" }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:fd80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2623032, "is_in_european_union" : true, "iso_code" : "DK", "names" : { "de" : "Dänemark", "en" : "Denmark", "es" : "Dinamarca", "fr" : "Danemark", "ja" : "デンマーク王国", "pt-BR" : "Dinamarca", "ru" : "Дания", "zh-CN" : "丹麦" } }, "location" : { "accuracy_radius" : 100, "latitude" : 56, "longitude" : 10, "time_zone" : "Europe/Copenhagen" }, "registered_country" : { "geoname_id" : 2623032, "is_in_european_union" : true, "iso_code" : "DK", "names" : { "de" : "Dänemark", "en" : "Denmark", "es" : "Dinamarca", "fr" : "Danemark", "ja" : "デンマーク王国", "pt-BR" : "Dinamarca", "ru" : "Дания", "zh-CN" : "丹麦" } } } }, { "2a02:fdc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47.33333, "longitude" : 13.33333, "time_zone" : "Europe/Vienna" }, "registered_country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } } } }, { "2a02:fe00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:fe40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:fe80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 42.83333, "longitude" : 12.83333, "time_zone" : "Europe/Rome" }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:fec0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:ff00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 42.83333, "longitude" : 12.83333, "time_zone" : "Europe/Rome" }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:ff40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3042225, "iso_code" : "IM", "names" : { "de" : "Insel Man", "en" : "Isle of Man", "es" : "Isla de Man", "fr" : "Île de Man", "ja" : "マン島", "pt-BR" : "Ilha de Man", "ru" : "Мэн, о-в", "zh-CN" : "曼岛" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.25, "longitude" : -4.5, "time_zone" : "Europe/Isle_of_Man" }, "registered_country" : { "geoname_id" : 3042225, "iso_code" : "IM", "names" : { "de" : "Insel Man", "en" : "Isle of Man", "es" : "Isla de Man", "fr" : "Île de Man", "ja" : "マン島", "pt-BR" : "Ilha de Man", "ru" : "Мэн, о-в", "zh-CN" : "曼岛" } } } }, { "2a02:ff80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:ffc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2411586, "iso_code" : "GI", "names" : { "de" : "Gibraltar", "en" : "Gibraltar", "es" : "Gibraltar", "fr" : "Gibraltar", "ja" : "ジブラルタル", "pt-BR" : "Gibraltar", "ru" : "Гибралтар" } }, "location" : { "accuracy_radius" : 100, "latitude" : 36.13333, "longitude" : -5.35, "time_zone" : "Europe/Gibraltar" }, "registered_country" : { "geoname_id" : 2411586, "iso_code" : "GI", "names" : { "de" : "Gibraltar", "en" : "Gibraltar", "es" : "Gibraltar", "fr" : "Gibraltar", "ja" : "ジブラルタル", "pt-BR" : "Gibraltar", "ru" : "Гибралтар" } } } }, { "::2.2.3.0/120" : { "city" : { "geoname_id" : 2655045, "names" : { "en" : "Boxford" } } } }, { "::2.3.3.0/120" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } } } }, { "::2.125.160.216/125" : { "city" : { "geoname_id" : 2655045, "names" : { "en" : "Boxford" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.75, "longitude" : -1.25, "time_zone" : "Europe/London" }, "postal" : { "code" : "OX1" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "subdivisions" : [ { "geoname_id" : 6269131, "iso_code" : "ENG", "names" : { "en" : "England", "es" : "Inglaterra", "fr" : "Angleterre", "pt-BR" : "Inglaterra" } }, { "geoname_id" : 3333217, "iso_code" : "WBK", "names" : { "en" : "West Berkshire", "ru" : "Западный Беркшир", "zh-CN" : "西伯克郡" } } ] } }, { "::81.2.69.142/127" : { "city" : { "geoname_id" : 2643743, "names" : { "de" : "London", "en" : "London", "es" : "Londres", "fr" : "Londres", "ja" : "ロンドン", "pt-BR" : "Londres", "ru" : "Лондон" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 10, "latitude" : 51.5142, "longitude" : -0.0931, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "geoname_id" : 6269131, "iso_code" : "ENG", "names" : { "en" : "England", "es" : "Inglaterra", "fr" : "Angleterre", "pt-BR" : "Inglaterra" } } ] } }, { "::81.2.69.144/124" : { "city" : { "geoname_id" : 2643743, "names" : { "de" : "London", "en" : "London", "es" : "Londres", "fr" : "Londres", "ja" : "ロンドン", "pt-BR" : "Londres", "ru" : "Лондон" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 3, "latitude" : 51.5142, "longitude" : -0.0931, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "geoname_id" : 6269131, "iso_code" : "ENG", "names" : { "en" : "England", "es" : "Inglaterra", "fr" : "Angleterre", "pt-BR" : "Inglaterra" } } ] } }, { "::81.2.69.160/123" : { "city" : { "geoname_id" : 2643743, "names" : { "de" : "London", "en" : "London", "es" : "Londres", "fr" : "Londres", "ja" : "ロンドン", "pt-BR" : "Londres", "ru" : "Лондон" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5142, "longitude" : -0.0931, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "geoname_id" : 6269131, "iso_code" : "ENG", "names" : { "en" : "England", "es" : "Inglaterra", "fr" : "Angleterre", "pt-BR" : "Inglaterra" } } ] } }, { "::81.2.69.192/124" : { "city" : { "geoname_id" : 2643743, "names" : { "de" : "London", "en" : "London", "es" : "Londres", "fr" : "Londres", "ja" : "ロンドン", "pt-BR" : "Londres", "ru" : "Лондон" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5142, "longitude" : -0.0931, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "geoname_id" : 6269131, "iso_code" : "ENG", "names" : { "en" : "England", "es" : "Inglaterra", "fr" : "Angleterre", "pt-BR" : "Inglaterra" } } ] } }, { "::149.101.100.0/124" : { "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "América del Norte", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "confidence" : 99, "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "location" : { "accuracy_radius" : 1000, "latitude" : 37.751, "longitude" : -97.822, "time_zone" : "America/Chicago" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "::216.160.83.56/125" : { "city" : { "geoname_id" : 5803556, "names" : { "en" : "Milton", "ru" : "Мильтон" } }, "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "América del Norte", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "location" : { "accuracy_radius" : 22, "latitude" : 47.2513, "longitude" : -122.3149, "metro_code" : 819, "time_zone" : "America/Los_Angeles" }, "postal" : { "code" : "98354" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "subdivisions" : [ { "geoname_id" : 5815135, "iso_code" : "WA", "names" : { "en" : "Washington", "es" : "Washington", "fr" : "État de Washington", "ja" : "ワシントン州", "ru" : "Вашингтон", "zh-CN" : "华盛顿州" } } ] } }, { "::89.160.20.112/124" : { "city" : { "geoname_id" : 2694762, "names" : { "de" : "Linköping", "en" : "Linköping", "fr" : "Linköping", "ja" : "リンシェーピング", "zh-CN" : "林雪平" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 76, "latitude" : 58.4167, "longitude" : 15.6167, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "subdivisions" : [ { "geoname_id" : 2685867, "iso_code" : "E", "names" : { "en" : "Östergötland County", "fr" : "Comté d'Östergötland" } } ] } }, { "::89.160.20.128/121" : { "city" : { "geoname_id" : 2694762, "names" : { "de" : "Linköping", "en" : "Linköping", "fr" : "Linköping", "ja" : "リンシェーピング", "zh-CN" : "林雪平" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 76, "latitude" : 58.4167, "longitude" : 15.6167, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "subdivisions" : [ { "geoname_id" : 2685867, "iso_code" : "E", "names" : { "en" : "Östergötland County", "fr" : "Comté d'Östergötland" } } ] } }, { "::67.43.156.0/120" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1252634, "iso_code" : "BT", "names" : { "de" : "Bhutan", "en" : "Bhutan", "es" : "Bután", "fr" : "Bhutan", "ja" : "ブータン王国", "pt-BR" : "Butão", "ru" : "Бутан", "zh-CN" : "不丹" } }, "location" : { "accuracy_radius" : 534, "latitude" : 27.5, "longitude" : 90.5, "time_zone" : "Asia/Thimphu" }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "traits" : { "is_anonymous_proxy" : true } } }, { "::202.196.224.0/116" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1694008, "iso_code" : "PH", "names" : { "de" : "Philippinen", "en" : "Philippines", "es" : "Filipinas", "fr" : "Philippines", "ja" : "フィリピン共和国", "pt-BR" : "Filipinas", "ru" : "Филиппины", "zh-CN" : "菲律宾" } }, "location" : { "accuracy_radius" : 121, "latitude" : 13, "longitude" : 122, "time_zone" : "Asia/Manila" }, "postal" : { "code" : "34021" }, "registered_country" : { "geoname_id" : 1694008, "iso_code" : "PH", "names" : { "de" : "Philippinen", "en" : "Philippines", "es" : "Filipinas", "fr" : "Philippines", "ja" : "フィリピン共和国", "pt-BR" : "Filipinas", "ru" : "Филиппины", "zh-CN" : "菲律宾" } }, "represented_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" }, "type" : "military" } } }, { "::175.16.199.0/120" : { "city" : { "geoname_id" : 2038180, "names" : { "de" : "Chángchūn", "en" : "Changchun", "fr" : "Changchun", "ja" : "長春市", "ru" : "Чанчунь", "zh-CN" : "长春" } }, "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "China", "es" : "China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 43.88, "longitude" : 125.3228, "time_zone" : "Asia/Harbin" }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "China", "es" : "China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "subdivisions" : [ { "geoname_id" : 2036500, "iso_code" : "22", "names" : { "en" : "Jilin Sheng", "zh-CN" : "吉林" } } ] } } ] GeoIP2-Connection-Type-Test.json000066400000000000000000000041071507532544400334770ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/source-data[ { "::1.0.0.0/120" : { "connection_type" : "Cable/DSL" } }, { "::1.0.1.0/120" : { "connection_type" : "Cellular" } }, { "::1.0.2.0/119" : { "connection_type" : "Cable/DSL" } }, { "::1.0.4.0/118" : { "connection_type" : "Cable/DSL" } }, { "::1.0.8.0/117" : { "connection_type" : "Cable/DSL" } }, { "::1.0.16.0/116" : { "connection_type" : "Cable/DSL" } }, { "::1.0.32.0/115" : { "connection_type" : "Cable/DSL" } }, { "::1.0.64.0/114" : { "connection_type" : "Cable/DSL" } }, { "::1.0.128.0/113" : { "connection_type" : "Cable/DSL" } }, { "::2.125.160.216/125" : { "connection_type" : "Cable/DSL" } }, { "::149.101.100.0/124" : { "connection_type" : "Cellular" } }, { "::67.43.156.0/120" : { "connection_type" : "Cellular" } }, { "::80.214.0.0/116" : { "connection_type" : "Cellular" } }, { "::96.1.0.0/112" : { "connection_type" : "Cable/DSL" } }, { "::96.10.0.0/111" : { "connection_type" : "Cable/DSL" } }, { "::96.69.0.0/112" : { "connection_type" : "Cable/DSL" } }, { "::96.94.0.0/111" : { "connection_type" : "Cable/DSL" } }, { "::108.96.0.0/107" : { "connection_type" : "Cellular" } }, { "::175.16.199.0/120" : { "connection_type" : "Cable/DSL" } }, { "::187.156.138.0/120" : { "connection_type" : "Cable/DSL" } }, { "::201.243.200.0/120" : { "connection_type" : "Corporate" } }, { "::207.179.48.0/116" : { "connection_type" : "Cellular" } }, { "::216.160.83.56/125" : { "connection_type" : "Corporate" } }, { "2003::/24" : { "connection_type" : "Cable/DSL" } } ] golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/source-data/GeoIP2-Country-Test.json000066400000000000000000016337131507532544400322170ustar00rootroot00000000000000[ { "2001:218::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:220::1/128" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::2/127" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::4/126" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::8/125" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::10/124" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::20/123" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::40/122" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::80/121" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::100/120" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::200/119" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::400/118" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::800/117" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::1000/116" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::2000/115" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::4000/114" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::8000/113" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::1:0/112" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::2:0/111" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::4:0/110" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::8:0/109" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::10:0/108" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::20:0/107" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::40:0/106" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::80:0/105" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::100:0/104" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::200:0/103" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::400:0/102" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::800:0/101" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::1000:0/100" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::2000:0/99" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::4000:0/98" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::8000:0/97" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::1:0:0/96" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::2:0:0/95" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::4:0:0/94" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::8:0:0/93" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::10:0:0/92" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::20:0:0/91" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::40:0:0/90" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::80:0:0/89" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::100:0:0/88" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::200:0:0/87" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::400:0:0/86" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::800:0:0/85" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::1000:0:0/84" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::2000:0:0/83" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::4000:0:0/82" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::8000:0:0/81" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:0:1::/80" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:0:2::/79" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:0:4::/78" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:0:8::/77" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:0:10::/76" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:0:20::/75" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:0:40::/74" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:0:80::/73" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:0:100::/72" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:0:200::/71" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:0:400::/70" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:0:800::/69" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:0:1000::/68" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:0:2000::/67" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:0:4000::/66" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:0:8000::/65" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:1::/64" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:2::/63" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:4::/62" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:8::/61" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:10::/60" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:20::/59" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:40::/58" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:80::/57" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:100::/56" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:200::/55" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:400::/54" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:800::/53" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:1000::/52" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:2000::/51" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:4000::/50" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:0:8000::/49" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:1::/48" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:2::/47" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:4::/46" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:8::/45" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:10::/44" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:20::/43" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:40::/42" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:80::/41" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:100::/40" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:200::/39" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:400::/38" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:800::/37" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:1000::/36" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:2000::/35" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:4000::/34" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220:8000::/33" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:220::/128" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2001:230::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:238::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1668284, "iso_code" : "TW", "names" : { "de" : "Taiwan", "en" : "Taiwan", "es" : "Taiwán", "fr" : "Taïwan", "ja" : "台湾", "pt-BR" : "Taiwan", "ru" : "Тайвань", "zh-CN" : "台湾" } }, "registered_country" : { "geoname_id" : 1668284, "iso_code" : "TW", "names" : { "de" : "Taiwan", "en" : "Taiwan", "es" : "Taiwán", "fr" : "Taïwan", "ja" : "台湾", "pt-BR" : "Taiwan", "ru" : "Тайвань", "zh-CN" : "台湾" } } } }, { "2001:240::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:250::/31" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "2001:252::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "2001:254::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "2001:256::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "2001:258::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:260::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:268::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:270::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:278::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:280::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:288::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1668284, "iso_code" : "TW", "names" : { "de" : "Taiwan", "en" : "Taiwan", "es" : "Taiwán", "fr" : "Taïwan", "ja" : "台湾", "pt-BR" : "Taiwan", "ru" : "Тайвань", "zh-CN" : "台湾" } }, "registered_country" : { "geoname_id" : 1668284, "iso_code" : "TW", "names" : { "de" : "Taiwan", "en" : "Taiwan", "es" : "Taiwán", "fr" : "Taïwan", "ja" : "台湾", "pt-BR" : "Taiwan", "ru" : "Тайвань", "zh-CN" : "台湾" } } } }, { "2001:290::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:298::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2a0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2a8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2b0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:2b8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:2c0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2c8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2d8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:2e0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1819730, "iso_code" : "HK", "names" : { "de" : "Hongkong", "en" : "Hong Kong", "es" : "Hong Kong", "fr" : "Hong Kong", "ja" : "香港", "pt-BR" : "Hong Kong", "ru" : "Гонконг", "zh-CN" : "香港" } }, "registered_country" : { "geoname_id" : 1819730, "iso_code" : "HK", "names" : { "de" : "Hongkong", "en" : "Hong Kong", "es" : "Hong Kong", "fr" : "Hong Kong", "ja" : "香港", "pt-BR" : "Hong Kong", "ru" : "Гонконг", "zh-CN" : "香港" } } } }, { "2001:2e8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2f0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2f8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2a02:cf40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:cf80::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } }, "registered_country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } } } }, { "2a02:cfc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d000::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } }, "registered_country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } } } }, { "2a02:d040::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:d080::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 290291, "iso_code" : "BH", "names" : { "de" : "Bahrain", "en" : "Bahrain", "es" : "Bahréin", "fr" : "Bahreïn", "ja" : "バーレーン", "pt-BR" : "Bahrain", "ru" : "Бахрейн", "zh-CN" : "巴林" } }, "registered_country" : { "geoname_id" : 290291, "iso_code" : "BH", "names" : { "de" : "Bahrain", "en" : "Bahrain", "es" : "Bahréin", "fr" : "Bahreïn", "ja" : "バーレーン", "pt-BR" : "Bahrain", "ru" : "Бахрейн", "zh-CN" : "巴林" } } } }, { "2a02:d0c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:d100::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:d140::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:d180::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d1c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:d200::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 660013, "is_in_european_union" : true, "iso_code" : "FI", "names" : { "de" : "Finnland", "en" : "Finland", "es" : "Finlandia", "fr" : "Finlande", "ja" : "フィンランド共和国", "pt-BR" : "Finlândia", "ru" : "Финляндия", "zh-CN" : "芬兰" } }, "registered_country" : { "geoname_id" : 660013, "is_in_european_union" : true, "iso_code" : "FI", "names" : { "de" : "Finnland", "en" : "Finland", "es" : "Finlandia", "fr" : "Finlande", "ja" : "フィンランド共和国", "pt-BR" : "Finlândia", "ru" : "Финляндия", "zh-CN" : "芬兰" } } } }, { "2a02:d240::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 630336, "iso_code" : "BY", "names" : { "de" : "Weißrussland", "en" : "Belarus", "es" : "Bielorrusia", "fr" : "Biélorussie", "ja" : "ベラルーシ共和国", "pt-BR" : "Bielo-Rússia", "ru" : "Беларусь", "zh-CN" : "白俄罗斯" } }, "registered_country" : { "geoname_id" : 630336, "iso_code" : "BY", "names" : { "de" : "Weißrussland", "en" : "Belarus", "es" : "Bielorrusia", "fr" : "Biélorussie", "ja" : "ベラルーシ共和国", "pt-BR" : "Bielo-Rússia", "ru" : "Беларусь", "zh-CN" : "白俄罗斯" } } } }, { "2a02:d280::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } }, "registered_country" : { "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } } } }, { "2a02:d2c0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:d300::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:d340::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d380::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:d3c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:d400::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 719819, "is_in_european_union" : true, "iso_code" : "HU", "names" : { "de" : "Ungarn", "en" : "Hungary", "es" : "Hungría", "fr" : "Hongrie", "ja" : "ハンガリー共和国", "pt-BR" : "Hungria", "ru" : "Венгрия", "zh-CN" : "匈牙利" } }, "registered_country" : { "geoname_id" : 719819, "is_in_european_union" : true, "iso_code" : "HU", "names" : { "de" : "Ungarn", "en" : "Hungary", "es" : "Hungría", "fr" : "Hongrie", "ja" : "ハンガリー共和国", "pt-BR" : "Hungria", "ru" : "Венгрия", "zh-CN" : "匈牙利" } } } }, { "2a02:d440::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:d480::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d4c0::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 660013, "is_in_european_union" : true, "iso_code" : "FI", "names" : { "de" : "Finnland", "en" : "Finland", "es" : "Finlandia", "fr" : "Finlande", "ja" : "フィンランド共和国", "pt-BR" : "Finlândia", "ru" : "Финляндия", "zh-CN" : "芬兰" } }, "registered_country" : { "geoname_id" : 660013, "is_in_european_union" : true, "iso_code" : "FI", "names" : { "de" : "Finnland", "en" : "Finland", "es" : "Finlandia", "fr" : "Finlande", "ja" : "フィンランド共和国", "pt-BR" : "Finlândia", "ru" : "Финляндия", "zh-CN" : "芬兰" } } } }, { "2a02:d4e0::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d500::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } } } }, { "2a02:d540::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:d580::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d5c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2510769, "is_in_european_union" : true, "iso_code" : "ES", "names" : { "de" : "Spanien", "en" : "Spain", "es" : "España", "fr" : "Espagne", "ja" : "スペイン", "pt-BR" : "Espanha", "ru" : "Испания", "zh-CN" : "西班牙" } }, "registered_country" : { "geoname_id" : 2510769, "is_in_european_union" : true, "iso_code" : "ES", "names" : { "de" : "Spanien", "en" : "Spain", "es" : "España", "fr" : "Espagne", "ja" : "スペイン", "pt-BR" : "Espanha", "ru" : "Испания", "zh-CN" : "西班牙" } } } }, { "2a02:d600::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d640::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d680::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:d6a0::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d6c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 732800, "is_in_european_union" : true, "iso_code" : "BG", "names" : { "de" : "Bulgarien", "en" : "Bulgaria", "es" : "Bulgaria", "fr" : "Bulgarie", "ja" : "ブルガリア共和国", "pt-BR" : "Bulgária", "ru" : "Болгария", "zh-CN" : "保加利亚" } }, "registered_country" : { "geoname_id" : 732800, "is_in_european_union" : true, "iso_code" : "BG", "names" : { "de" : "Bulgarien", "en" : "Bulgaria", "es" : "Bulgaria", "fr" : "Bulgarie", "ja" : "ブルガリア共和国", "pt-BR" : "Bulgária", "ru" : "Болгария", "zh-CN" : "保加利亚" } } } }, { "2a02:d700::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d740::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } }, "registered_country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } } } }, { "2a02:d780::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:d7c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d800::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } } } }, { "2a02:d840::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:d880::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:d8c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:d900::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:d940::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2802361, "is_in_european_union" : true, "iso_code" : "BE", "names" : { "de" : "Belgien", "en" : "Belgium", "es" : "Bélgica", "fr" : "Belgique", "ja" : "ベルギー王国", "pt-BR" : "Bélgica", "ru" : "Бельгия", "zh-CN" : "比利时" } }, "registered_country" : { "geoname_id" : 2802361, "is_in_european_union" : true, "iso_code" : "BE", "names" : { "de" : "Belgien", "en" : "Belgium", "es" : "Bélgica", "fr" : "Belgique", "ja" : "ベルギー王国", "pt-BR" : "Bélgica", "ru" : "Бельгия", "zh-CN" : "比利时" } } } }, { "2a02:d980::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:d9c0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:da00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:da40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:da80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } }, "registered_country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } } } }, { "2a02:dac0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:db00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:db40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } } } }, { "2a02:db80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dbc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dc00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dc40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:dc80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dcc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:dd00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 783754, "iso_code" : "AL", "names" : { "de" : "Albanien", "en" : "Albania", "es" : "Albania", "fr" : "Albanie", "ja" : "アルバニア共和国", "pt-BR" : "Albânia", "ru" : "Албания", "zh-CN" : "阿尔巴尼亚" } }, "registered_country" : { "geoname_id" : 783754, "iso_code" : "AL", "names" : { "de" : "Albanien", "en" : "Albania", "es" : "Albania", "fr" : "Albanie", "ja" : "アルバニア共和国", "pt-BR" : "Albânia", "ru" : "Албания", "zh-CN" : "阿尔巴尼亚" } } } }, { "2a02:dd40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:dd80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:ddc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:de00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:de40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } }, "registered_country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } } } }, { "2a02:de80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dec0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 272103, "iso_code" : "LB", "names" : { "de" : "Libanon", "en" : "Lebanon", "es" : "Líbano", "fr" : "Liban", "ja" : "レバノン共和国", "pt-BR" : "Líbano", "ru" : "Ливан", "zh-CN" : "黎巴嫩" } }, "registered_country" : { "geoname_id" : 272103, "iso_code" : "LB", "names" : { "de" : "Libanon", "en" : "Lebanon", "es" : "Líbano", "fr" : "Liban", "ja" : "レバノン共和国", "pt-BR" : "Líbano", "ru" : "Ливан", "zh-CN" : "黎巴嫩" } } } }, { "2a02:df00::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:df40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:df80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:dfc0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:e000::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e040::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:e080::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 285570, "iso_code" : "KW", "names" : { "de" : "Kuwait", "en" : "Kuwait", "es" : "Kuwait", "fr" : "Koweït", "ja" : "クウェート", "pt-BR" : "Kuwait", "ru" : "Кувейт", "zh-CN" : "科威特" } }, "registered_country" : { "geoname_id" : 285570, "iso_code" : "KW", "names" : { "de" : "Kuwait", "en" : "Kuwait", "es" : "Kuwait", "fr" : "Koweït", "ja" : "クウェート", "pt-BR" : "Kuwait", "ru" : "Кувейт", "zh-CN" : "科威特" } } } }, { "2a02:e0c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } }, "registered_country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } } } }, { "2a02:e100::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:e140::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:e180::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:e1c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:e200::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } }, "registered_country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } } } }, { "2a02:e220::/30" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } }, "registered_country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } } } }, { "2a02:e240::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e280::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e2c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:e300::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 630336, "iso_code" : "BY", "names" : { "de" : "Weißrussland", "en" : "Belarus", "es" : "Bielorrusia", "fr" : "Biélorussie", "ja" : "ベラルーシ共和国", "pt-BR" : "Bielo-Rússia", "ru" : "Беларусь", "zh-CN" : "白俄罗斯" } }, "registered_country" : { "geoname_id" : 630336, "iso_code" : "BY", "names" : { "de" : "Weißrussland", "en" : "Belarus", "es" : "Bielorrusia", "fr" : "Biélorussie", "ja" : "ベラルーシ共和国", "pt-BR" : "Bielo-Rússia", "ru" : "Беларусь", "zh-CN" : "白俄罗斯" } } } }, { "2a02:e340::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:e380::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:e3c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e400::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:e440::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e480::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e4c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:e500::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e540::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 6290252, "iso_code" : "RS", "names" : { "de" : "Serbien", "en" : "Serbia", "es" : "Serbia", "fr" : "Serbie", "ja" : "セルビア", "pt-BR" : "Sérvia", "ru" : "Сербия", "zh-CN" : "塞尔维亚" } }, "registered_country" : { "geoname_id" : 6290252, "iso_code" : "RS", "names" : { "de" : "Serbien", "en" : "Serbia", "es" : "Serbia", "fr" : "Serbie", "ja" : "セルビア", "pt-BR" : "Sérvia", "ru" : "Сербия", "zh-CN" : "塞尔维亚" } } } }, { "2a02:e580::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:e5c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e600::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e620::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e640::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e680::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 248816, "iso_code" : "JO", "names" : { "de" : "Jordanien", "en" : "Hashemite Kingdom of Jordan", "es" : "Jordania", "fr" : "Jordanie", "ja" : "ヨルダン・ハシミテ王国", "pt-BR" : "Jordânia", "ru" : "Иордания", "zh-CN" : "约旦" } }, "registered_country" : { "geoname_id" : 248816, "iso_code" : "JO", "names" : { "de" : "Jordanien", "en" : "Hashemite Kingdom of Jordan", "es" : "Jordania", "fr" : "Jordanie", "ja" : "ヨルダン・ハシミテ王国", "pt-BR" : "Jordânia", "ru" : "Иордания", "zh-CN" : "约旦" } } } }, { "2a02:e6c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e700::/29" : { "continent" : { "code" : "AF", "geoname_id" : 6255146, "names" : { "de" : "Afrika", "en" : "Africa", "es" : "África", "fr" : "Afrique", "ja" : "アフリカ", "pt-BR" : "África", "ru" : "Африка", "zh-CN" : "非洲" } }, "country" : { "geoname_id" : 2215636, "iso_code" : "LY", "names" : { "de" : "Libysch-Arabische Dschamahirija", "en" : "Libya", "es" : "Libia, República Árabe", "fr" : "Libye", "ja" : "社会主義人民リビア・アラブ国", "pt-BR" : "Líbia Árabe Jamahiriya", "ru" : "Ливия", "zh-CN" : "阿拉伯利比亚民众国" } }, "registered_country" : { "geoname_id" : 2215636, "iso_code" : "LY", "names" : { "de" : "Libysch-Arabische Dschamahirija", "en" : "Libya", "es" : "Libia, República Árabe", "fr" : "Libye", "ja" : "社会主義人民リビア・アラブ国", "pt-BR" : "Líbia Árabe Jamahiriya", "ru" : "Ливия", "zh-CN" : "阿拉伯利比亚民众国" } } } }, { "2a02:e740::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e780::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:e7c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:e800::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e840::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e880::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e900::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2963597, "is_in_european_union" : true, "iso_code" : "IE", "names" : { "de" : "Irland", "en" : "Ireland", "es" : "República de Irlanda", "fr" : "Irlande", "ja" : "アイルランド", "pt-BR" : "Irlanda", "ru" : "Ирландия", "zh-CN" : "爱尔兰" } }, "registered_country" : { "geoname_id" : 2963597, "is_in_european_union" : true, "iso_code" : "IE", "names" : { "de" : "Irland", "en" : "Ireland", "es" : "República de Irlanda", "fr" : "Irlande", "ja" : "アイルランド", "pt-BR" : "Irlanda", "ru" : "Ирландия", "zh-CN" : "爱尔兰" } } } }, { "2a02:e940::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } } } }, { "2a02:e980::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } }, "registered_country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } } } }, { "2a02:e9c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:ea00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } }, "registered_country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } } } }, { "2a02:ea40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:ea80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:eac0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:eb00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:eb40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:eb80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ebc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:ec00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:ec40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ec80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } } } }, { "2a02:ecc0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 587116, "iso_code" : "AZ", "names" : { "de" : "Aserbaidschan", "en" : "Azerbaijan", "es" : "Azerbaiyán", "fr" : "Azerbaïdjan", "ja" : "アゼルバイジャン共和国", "pt-BR" : "Azerbaijão", "ru" : "Азербайджан", "zh-CN" : "阿塞拜疆" } }, "registered_country" : { "geoname_id" : 587116, "iso_code" : "AZ", "names" : { "de" : "Aserbaidschan", "en" : "Azerbaijan", "es" : "Azerbaiyán", "fr" : "Azerbaïdjan", "ja" : "アゼルバイジャン共和国", "pt-BR" : "Azerbaijão", "ru" : "Азербайджан", "zh-CN" : "阿塞拜疆" } } } }, { "2a02:ed00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:ed40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:ed80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:edc0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } }, "registered_country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } } } }, { "2a02:ee00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:ee40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ee80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:eec0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:ef00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ef40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ef80::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:efc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f000::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } }, "registered_country" : { "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } } } }, { "2a02:f040::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 290291, "iso_code" : "BH", "names" : { "de" : "Bahrain", "en" : "Bahrain", "es" : "Bahréin", "fr" : "Bahreïn", "ja" : "バーレーン", "pt-BR" : "Bahrain", "ru" : "Бахрейн", "zh-CN" : "巴林" } }, "registered_country" : { "geoname_id" : 290291, "iso_code" : "BH", "names" : { "de" : "Bahrain", "en" : "Bahrain", "es" : "Bahréin", "fr" : "Bahreïn", "ja" : "バーレーン", "pt-BR" : "Bahrain", "ru" : "Бахрейн", "zh-CN" : "巴林" } } } }, { "2a02:f080::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:f0a0::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f0c0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 248816, "iso_code" : "JO", "names" : { "de" : "Jordanien", "en" : "Hashemite Kingdom of Jordan", "es" : "Jordania", "fr" : "Jordanie", "ja" : "ヨルダン・ハシミテ王国", "pt-BR" : "Jordânia", "ru" : "Иордания", "zh-CN" : "约旦" } }, "registered_country" : { "geoname_id" : 248816, "iso_code" : "JO", "names" : { "de" : "Jordanien", "en" : "Hashemite Kingdom of Jordan", "es" : "Jordania", "fr" : "Jordanie", "ja" : "ヨルダン・ハシミテ王国", "pt-BR" : "Jordânia", "ru" : "Иордания", "zh-CN" : "约旦" } } } }, { "2a02:f100::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f140::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:f180::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:f1c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:f200::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:f240::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:f280::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:f2c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f300::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:f340::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:f380::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f3c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:f400::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 290557, "iso_code" : "AE", "names" : { "de" : "Vereinigte Arabische Emirate", "en" : "United Arab Emirates", "es" : "Emiratos Árabes Unidos", "fr" : "Émirats Arabes Unis", "ja" : "アラブ首長国連邦", "pt-BR" : "Emirados Árabes Unidos", "ru" : "Объединенные Арабские Эмираты", "zh-CN" : "阿拉伯联合酋长国" } }, "registered_country" : { "geoname_id" : 290557, "iso_code" : "AE", "names" : { "de" : "Vereinigte Arabische Emirate", "en" : "United Arab Emirates", "es" : "Emiratos Árabes Unidos", "fr" : "Émirats Arabes Unis", "ja" : "アラブ首長国連邦", "pt-BR" : "Emirados Árabes Unidos", "ru" : "Объединенные Арабские Эмираты", "zh-CN" : "阿拉伯联合酋长国" } } } }, { "2a02:f440::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f480::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:f4c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2510769, "is_in_european_union" : true, "iso_code" : "ES", "names" : { "de" : "Spanien", "en" : "Spain", "es" : "España", "fr" : "Espagne", "ja" : "スペイン", "pt-BR" : "Espanha", "ru" : "Испания", "zh-CN" : "西班牙" } }, "registered_country" : { "geoname_id" : 2510769, "is_in_european_union" : true, "iso_code" : "ES", "names" : { "de" : "Spanien", "en" : "Spain", "es" : "España", "fr" : "Espagne", "ja" : "スペイン", "pt-BR" : "Espanha", "ru" : "Испания", "zh-CN" : "西班牙" } } } }, { "2a02:f500::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f540::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f560::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f580::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 174982, "iso_code" : "AM", "names" : { "de" : "Armenien", "en" : "Armenia", "es" : "Armenia", "fr" : "Arménie", "ja" : "アルメニア共和国", "pt-BR" : "Armênia", "ru" : "Армения", "zh-CN" : "亚美尼亚" } }, "registered_country" : { "geoname_id" : 174982, "iso_code" : "AM", "names" : { "de" : "Armenien", "en" : "Armenia", "es" : "Armenia", "fr" : "Arménie", "ja" : "アルメニア共和国", "pt-BR" : "Armênia", "ru" : "Армения", "zh-CN" : "亚美尼亚" } } } }, { "2a02:f5c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:f600::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:f640::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:f680::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f6c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f700::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 272103, "iso_code" : "LB", "names" : { "de" : "Libanon", "en" : "Lebanon", "es" : "Líbano", "fr" : "Liban", "ja" : "レバノン共和国", "pt-BR" : "Líbano", "ru" : "Ливан", "zh-CN" : "黎巴嫩" } }, "registered_country" : { "geoname_id" : 272103, "iso_code" : "LB", "names" : { "de" : "Libanon", "en" : "Lebanon", "es" : "Líbano", "fr" : "Liban", "ja" : "レバノン共和国", "pt-BR" : "Líbano", "ru" : "Ливан", "zh-CN" : "黎巴嫩" } } } }, { "2a02:f740::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:f780::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:f7c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:f800::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f840::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:f880::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:f8c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:f900::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:f940::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 719819, "is_in_european_union" : true, "iso_code" : "HU", "names" : { "de" : "Ungarn", "en" : "Hungary", "es" : "Hungría", "fr" : "Hongrie", "ja" : "ハンガリー共和国", "pt-BR" : "Hungria", "ru" : "Венгрия", "zh-CN" : "匈牙利" } }, "registered_country" : { "geoname_id" : 719819, "is_in_european_union" : true, "iso_code" : "HU", "names" : { "de" : "Ungarn", "en" : "Hungary", "es" : "Hungría", "fr" : "Hongrie", "ja" : "ハンガリー共和国", "pt-BR" : "Hungria", "ru" : "Венгрия", "zh-CN" : "匈牙利" } } } }, { "2a02:f980::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f9c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:fa00::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } }, "registered_country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } } } }, { "2a02:fa40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:fa80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:fac0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:fb00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:fb40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:fb80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:fbc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:fc00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:fc40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2623032, "is_in_european_union" : true, "iso_code" : "DK", "names" : { "de" : "Dänemark", "en" : "Denmark", "es" : "Dinamarca", "fr" : "Danemark", "ja" : "デンマーク王国", "pt-BR" : "Dinamarca", "ru" : "Дания", "zh-CN" : "丹麦" } }, "registered_country" : { "geoname_id" : 2623032, "is_in_european_union" : true, "iso_code" : "DK", "names" : { "de" : "Dänemark", "en" : "Denmark", "es" : "Dinamarca", "fr" : "Danemark", "ja" : "デンマーク王国", "pt-BR" : "Dinamarca", "ru" : "Дания", "zh-CN" : "丹麦" } } } }, { "2a02:fc80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:fcc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:fd00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:fd40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:fd80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2623032, "is_in_european_union" : true, "iso_code" : "DK", "names" : { "de" : "Dänemark", "en" : "Denmark", "es" : "Dinamarca", "fr" : "Danemark", "ja" : "デンマーク王国", "pt-BR" : "Dinamarca", "ru" : "Дания", "zh-CN" : "丹麦" } }, "registered_country" : { "geoname_id" : 2623032, "is_in_european_union" : true, "iso_code" : "DK", "names" : { "de" : "Dänemark", "en" : "Denmark", "es" : "Dinamarca", "fr" : "Danemark", "ja" : "デンマーク王国", "pt-BR" : "Dinamarca", "ru" : "Дания", "zh-CN" : "丹麦" } } } }, { "2a02:fdc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } }, "registered_country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } } } }, { "2a02:fe00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:fe40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:fe80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:fec0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:ff00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:ff40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3042225, "iso_code" : "IM", "names" : { "de" : "Insel Man", "en" : "Isle of Man", "es" : "Isla de Man", "fr" : "Île de Man", "ja" : "マン島", "pt-BR" : "Ilha de Man", "ru" : "Мэн, о-в", "zh-CN" : "曼岛" } }, "registered_country" : { "geoname_id" : 3042225, "iso_code" : "IM", "names" : { "de" : "Insel Man", "en" : "Isle of Man", "es" : "Isla de Man", "fr" : "Île de Man", "ja" : "マン島", "pt-BR" : "Ilha de Man", "ru" : "Мэн, о-в", "zh-CN" : "曼岛" } } } }, { "2a02:ff80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:ffc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2411586, "iso_code" : "GI", "names" : { "de" : "Gibraltar", "en" : "Gibraltar", "es" : "Gibraltar", "fr" : "Gibraltar", "ja" : "ジブラルタル", "pt-BR" : "Gibraltar", "ru" : "Гибралтар" } }, "registered_country" : { "geoname_id" : 2411586, "iso_code" : "GI", "names" : { "de" : "Gibraltar", "en" : "Gibraltar", "es" : "Gibraltar", "fr" : "Gibraltar", "ja" : "ジブラルタル", "pt-BR" : "Gibraltar", "ru" : "Гибралтар" } } } }, { "::2.125.160.216/125" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "::149.101.100.0/124" : { "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "América del Norte", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "::74.209.24.0/116" : { "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "Norteamérica", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "traits" : { "is_anonymous_proxy" : true, "is_satellite_provider" : true } } }, { "::75.209.24.0/128" : { "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "Norteamérica", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "traits" : { "is_anonymous_proxy" : true, "is_satellite_provider" : true } } }, { "::81.2.69.142/127" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } } } }, { "::81.2.69.144/124" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } } } }, { "::81.2.69.160/123" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } } } }, { "::81.2.69.192/124" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } } } }, { "::216.160.83.56/125" : { "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "América del Norte", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "::89.160.20.112/124" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "::89.160.20.128/121" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "::67.43.156.0/120" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1252634, "iso_code" : "BT", "names" : { "de" : "Bhutan", "en" : "Bhutan", "es" : "Bután", "fr" : "Bhutan", "ja" : "ブータン王国", "pt-BR" : "Butão", "ru" : "Бутан", "zh-CN" : "不丹" } }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "traits" : { "is_anonymous_proxy" : true } } }, { "::202.196.224.0/116" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1694008, "iso_code" : "PH", "names" : { "de" : "Philippinen", "en" : "Philippines", "es" : "Filipinas", "fr" : "Philippines", "ja" : "フィリピン共和国", "pt-BR" : "Filipinas", "ru" : "Филиппины", "zh-CN" : "菲律宾" } }, "registered_country" : { "geoname_id" : 1694008, "iso_code" : "PH", "names" : { "de" : "Philippinen", "en" : "Philippines", "es" : "Filipinas", "fr" : "Philippines", "ja" : "フィリピン共和国", "pt-BR" : "Filipinas", "ru" : "Филиппины", "zh-CN" : "菲律宾" } }, "represented_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" }, "type" : "military" } } }, { "::111.235.160.0/118" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "::175.16.199.0/120" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "China", "es" : "China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "China", "es" : "China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "::212.47.235.81/128" : { "traits" : { "is_anonymous_proxy" : true } } }, { "::212.47.235.82/128" : { "traits" : { "is_satellite_provider" : true } } }, { "::217.65.48.0/125" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2411586, "iso_code" : "GI", "names" : { "de" : "Gibraltar", "en" : "Gibraltar", "es" : "Gibraltar", "fr" : "Gibraltar", "ja" : "ジブラルタル", "pt-BR" : "Gibraltar", "ru" : "Гибралтар" } }, "registered_country" : { "geoname_id" : 2411586, "iso_code" : "GI", "names" : { "de" : "Gibraltar", "en" : "Gibraltar", "es" : "Gibraltar", "fr" : "Gibraltar", "ja" : "ジブラルタル", "pt-BR" : "Gibraltar", "ru" : "Гибралтар" } } } }, { "::50.114.0.0/118" : { "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "América del Norte", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } } } } ] GeoIP2-DensityIncome-Test.json000066400000000000000000000003651507532544400332350ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/source-data[ { "::5.83.124.0/118" : { "average_income" : 32323, "population_density" : 1232 } }, { "::216.160.83.0/120" : { "average_income" : 24626, "population_density" : 1341 } } ] golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/source-data/GeoIP2-Domain-Test.json000066400000000000000000000165141507532544400317540ustar00rootroot00000000000000[ { "::1.2.0.0/112" : { "domain" : "maxmind.com" } }, { "::71.160.223.0/120" : { "domain" : "verizon.net" } }, { "::186.30.236.0/120" : { "domain" : "replaced.com" } }, { "2a02:2770:3::/64" : { "domain" : "sgotti.org" } }, { "2a02:8420:48f4:b000::/64" : { "domain" : "sfr.net" } }, { "::142.217.194.0/119" : { "domain" : "telebecinternet.net" } }, { "::142.217.196.0/118" : { "domain" : "telebecinternet.net" } }, { "::142.217.200.0/117" : { "domain" : "telebecinternet.net" } }, { "::142.217.208.0/118" : { "domain" : "telebecinternet.net" } }, { "::142.217.212.0/119" : { "domain" : "telebecinternet.net" } }, { "::142.217.214.0/120" : { "domain" : "telebecinternet.net" } }, { "::208.110.201.0/120" : { "domain" : "comcastbusiness.net" } }, { "::208.110.202.0/119" : { "domain" : "comcastbusiness.net" } }, { "::208.110.204.0/118" : { "domain" : "comcastbusiness.net" } }, { "::208.110.208.0/116" : { "domain" : "comcastbusiness.net" } }, { "::222.230.136.0/118" : { "domain" : "gol.ne.jp" } }, { "::65.115.240.0/116" : { "domain" : "qwest.net" } }, { "::65.116.0.0/118" : { "domain" : "qwest.net" } }, { "::65.116.4.0/120" : { "domain" : "qwest.net" } }, { "::65.23.96.0/115" : { "domain" : "nuvox.net" } }, { "::66.92.78.0/119" : { "domain" : "speakeasy.net" } }, { "::66.92.80.0/116" : { "domain" : "speakeasy.net" } }, { "::66.92.96.0/115" : { "domain" : "speakeasy.net" } }, { "::66.92.128.0/113" : { "domain" : "speakeasy.net" } }, { "::66.93.0.0/113" : { "domain" : "speakeasy.net" } }, { "::66.93.128.0/114" : { "domain" : "speakeasy.net" } }, { "::66.93.192.0/115" : { "domain" : "speakeasy.net" } }, { "::66.93.224.0/116" : { "domain" : "speakeasy.net" } }, { "::66.93.240.0/117" : { "domain" : "speakeasy.net" } }, { "::66.93.248.0/119" : { "domain" : "speakeasy.net" } }, { "::67.43.156.0/120" : { "domain" : "shoesfin.NET" } }, { "::69.218.198.0/119" : { "domain" : "ameritech.net" } }, { "::69.218.200.0/117" : { "domain" : "ameritech.net" } }, { "::69.218.208.0/116" : { "domain" : "ameritech.net" } }, { "::69.218.224.0/115" : { "domain" : "ameritech.net" } }, { "::69.219.0.0/114" : { "domain" : "ameritech.net" } }, { "::69.219.64.0/116" : { "domain" : "ameritech.net" } }, { "::69.219.80.0/118" : { "domain" : "ameritech.net" } }, { "::69.219.84.0/120" : { "domain" : "ameritech.net" } }, { "::70.46.0.0/113" : { "domain" : "nuvox.net" } }, { "::70.46.128.0/118" : { "domain" : "nuvox.net" } }, { "::70.46.132.0/120" : { "domain" : "nuvox.net" } }, { "::71.136.2.0/119" : { "domain" : "pacbell.net" } }, { "::71.136.4.0/118" : { "domain" : "pacbell.net" } }, { "::71.136.8.0/117" : { "domain" : "pacbell.net" } }, { "::71.136.16.0/116" : { "domain" : "pacbell.net" } }, { "::71.136.32.0/115" : { "domain" : "pacbell.net" } }, { "::71.136.64.0/114" : { "domain" : "pacbell.net" } }, { "::71.136.128.0/113" : { "domain" : "pacbell.net" } }, { "::71.137.0.0/112" : { "domain" : "pacbell.net" } }, { "::71.138.0.0/113" : { "domain" : "pacbell.net" } }, { "::71.138.128.0/114" : { "domain" : "pacbell.net" } }, { "::71.138.192.0/116" : { "domain" : "pacbell.net" } }, { "::71.138.208.0/119" : { "domain" : "pacbell.net" } }, { "::74.0.88.0/117" : { "domain" : "covad.net" } }, { "::74.0.96.0/115" : { "domain" : "covad.net" } }, { "::74.0.128.0/113" : { "domain" : "covad.net" } }, { "::74.1.0.0/112" : { "domain" : "covad.net" } }, { "::74.2.0.0/113" : { "domain" : "covad.net" } }, { "::74.2.128.0/115" : { "domain" : "covad.net" } }, { "::74.2.160.0/117" : { "domain" : "covad.net" } }, { "::74.2.168.0/118" : { "domain" : "covad.net" } }, { "::74.2.172.0/119" : { "domain" : "covad.net" } }, { "::74.2.174.0/120" : { "domain" : "covad.net" } }, { "::75.77.84.0/118" : { "domain" : "nuvox.net" } }, { "::75.77.88.0/117" : { "domain" : "nuvox.net" } }, { "::75.77.96.0/115" : { "domain" : "nuvox.net" } }, { "::75.77.128.0/113" : { "domain" : "nuvox.net" } }, { "::78.26.67.0/120" : { "domain" : "popwifi.it" } }, { "::78.26.68.0/118" : { "domain" : "popwifi.it" } }, { "::78.26.72.0/117" : { "domain" : "popwifi.it" } }, { "::78.26.80.0/116" : { "domain" : "popwifi.it" } }, { "::78.26.96.0/117" : { "domain" : "popwifi.it" } }, { "::78.26.104.0/118" : { "domain" : "popwifi.it" } }, { "::78.26.108.0/119" : { "domain" : "popwifi.it" } }, { "::78.26.110.0/120" : { "domain" : "popwifi.it" } }, { "::81.2.64.0/115" : { "domain" : "in-addr.arpa" } }, { "::83.206.0.0/112" : { "domain" : "oleane.fr" } }, { "::89.160.0.0/116" : { "domain" : "bredband2.com" } }, { "::89.160.16.0/117" : { "domain" : "bredband2.com" } }, { "::89.160.24.0/118" : { "domain" : "bredband2.com" } }, { "::89.160.28.0/119" : { "domain" : "bredband2.com" } }, { "::89.160.30.0/120" : { "domain" : "bredband2.com" } }, { "::89.92.0.0/111" : { "domain" : "bbox.fr" } }, { "::89.94.0.0/112" : { "domain" : "bbox.fr" } }, { "::89.95.0.0/113" : { "domain" : "bbox.fr" } }, { "::89.95.128.0/114" : { "domain" : "bbox.fr" } }, { "::89.95.192.0/115" : { "domain" : "bbox.fr" } }, { "::89.95.224.0/116" : { "domain" : "bbox.fr" } }, { "::89.95.240.0/119" : { "domain" : "bbox.fr" } } ] golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/source-data/GeoIP2-Enterprise-Test.json000066400000000000000000000564611507532544400326720ustar00rootroot00000000000000[ { "::2.125.160.216/125" : { "city" : { "confidence" : 50, "geoname_id" : 2655045, "names" : { "en" : "Boxford" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "confidence" : 95, "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.75, "longitude" : -1.25, "time_zone" : "Europe/London" }, "postal" : { "code" : "OX1", "confidence" : 20 }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "subdivisions" : [ { "confidence" : 70, "geoname_id" : 6269131, "iso_code" : "ENG", "names" : { "en" : "England", "es" : "Inglaterra", "fr" : "Angleterre", "pt-BR" : "Inglaterra" } }, { "geoname_id" : 3333217, "iso_code" : "WBK", "names" : { "en" : "West Berkshire", "ru" : "Западный Беркшир", "zh-CN" : "西伯克郡" } } ], "traits" : { "static_ip_score" : 0.27 } } }, { "::67.43.156.0/120" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "confidence" : 99, "geoname_id" : 1252634, "iso_code" : "BT", "names" : { "de" : "Bhutan", "en" : "Bhutan", "es" : "Bután", "fr" : "Bhutan", "ja" : "ブータン王国", "pt-BR" : "Butão", "ru" : "Бутан", "zh-CN" : "不丹" } }, "location" : { "accuracy_radius" : 534, "latitude" : 27.5, "longitude" : 90.5, "time_zone" : "Asia/Thimphu" }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "traits" : { "autonomous_system_number" : 35908, "domain" : "shoesfin.NET", "is_anonymous_proxy" : true, "isp" : "Loud Packet", "organization" : "zudoarichikito_", "static_ip_score" : 0.34, "user_type" : "search_engine_spider" } } }, { "::74.209.24.0/116" : { "city" : { "confidence" : 11, "geoname_id" : 5112335, "names" : { "en" : "Chatham" } }, "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "Norteamérica", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "confidence" : 99, "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "location" : { "accuracy_radius" : 27, "latitude" : 42.3478, "longitude" : -73.5549, "metro_code" : 532, "time_zone" : "America/New_York" }, "postal" : { "code" : "12037", "confidence" : 11 }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "confidence" : 93, "geoname_id" : 5128638, "iso_code" : "NY", "names" : { "de" : "New York", "en" : "New York", "es" : "Nueva York", "fr" : "New York", "ja" : "ニューヨーク州", "pt-BR" : "Nova Iorque", "ru" : "Нью-Йорк", "zh-CN" : "纽约州" } } ], "traits" : { "autonomous_system_number" : 14671, "autonomous_system_organization" : "FairPoint Communications", "connection_type" : "Cable/DSL", "domain" : "frpt.net", "is_anonymous_proxy" : true, "is_legitimate_proxy" : true, "is_satellite_provider" : true, "isp" : "Fairpoint Communications", "organization" : "Fairpoint Communications", "static_ip_score" : 0.34, "user_type" : "residential" } } }, { "::81.2.69.160/123" : { "city" : { "confidence" : 42, "geoname_id" : 2643743, "names" : { "de" : "London", "en" : "London", "es" : "Londres", "fr" : "Londres", "ja" : "ロンドン", "pt-BR" : "Londres", "ru" : "Лондон" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "confidence" : 99, "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5142, "longitude" : -0.0931, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "confidence" : 42, "geoname_id" : 6269131, "iso_code" : "ENG", "names" : { "en" : "England", "es" : "Inglaterra", "fr" : "Angleterre", "pt-BR" : "Inglaterra" } } ], "traits" : { "connection_type" : "Corporate", "domain" : "in-addr.arpa", "isp" : "Andrews & Arnold Ltd", "organization" : "STONEHOUSE office network", "static_ip_score" : 0.34, "user_type" : "government" } } }, { "::89.160.20.112/124" : { "city" : { "confidence" : 51, "geoname_id" : 2694762, "names" : { "de" : "Linköping", "en" : "Linköping", "fr" : "Linköping", "ja" : "リンシェーピング", "zh-CN" : "林雪平" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "confidence" : 99, "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 76, "latitude" : 58.4167, "longitude" : 15.6167, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "subdivisions" : [ { "confidence" : 51, "geoname_id" : 2685867, "iso_code" : "E", "names" : { "en" : "Östergötland County", "fr" : "Comté d'Östergötland" } } ], "traits" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB", "connection_type" : "Corporate", "domain" : "bredband2.com", "isp" : "Bredband2 AB", "organization" : "Bevtec", "static_ip_score" : 0.34, "user_type" : "government" } } }, { "::149.101.100.0/124" : { "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "América del Norte", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "confidence" : 99, "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "location" : { "accuracy_radius" : 1000, "latitude" : 37.751, "longitude" : -97.822, "time_zone" : "America/Chicago" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "traits" : { "autonomous_system_number" : 6167, "autonomous_system_organization" : "CELLCO-PART", "isp" : "Verizon Wireless", "mobile_country_code" : "310", "mobile_network_code" : "004", "organization" : "Verizon Wireless" } } }, { "::175.16.199.0/120" : { "city" : { "confidence" : 50, "geoname_id" : 2038180, "names" : { "de" : "Chángchūn", "en" : "Changchun", "fr" : "Changchun", "ja" : "長春市", "ru" : "Чанчунь", "zh-CN" : "长春" } }, "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "confidence" : 95, "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "China", "es" : "China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 43.88, "longitude" : 125.3228, "time_zone" : "Asia/Harbin" }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "China", "es" : "China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "subdivisions" : [ { "confidence" : 70, "geoname_id" : 2036500, "iso_code" : "22", "names" : { "en" : "Jilin Sheng", "zh-CN" : "吉林" } } ], "traits" : { "static_ip_score" : 0.63, "user_type" : "residential" } } }, { "::202.196.224.0/116" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "confidence" : 95, "geoname_id" : 1694008, "iso_code" : "PH", "names" : { "de" : "Philippinen", "en" : "Philippines", "es" : "Filipinas", "fr" : "Philippines", "ja" : "フィリピン共和国", "pt-BR" : "Filipinas", "ru" : "Филиппины", "zh-CN" : "菲律宾" } }, "location" : { "accuracy_radius" : 121, "latitude" : 13, "longitude" : 122, "time_zone" : "Asia/Manila" }, "postal" : { "code" : "34021", "confidence" : 20 }, "registered_country" : { "geoname_id" : 1694008, "iso_code" : "PH", "names" : { "de" : "Philippinen", "en" : "Philippines", "es" : "Filipinas", "fr" : "Philippines", "ja" : "フィリピン共和国", "pt-BR" : "Filipinas", "ru" : "Филиппины", "zh-CN" : "菲律宾" } }, "represented_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" }, "type" : "military" }, "traits" : { "static_ip_score" : 1.29 } } }, { "::216.160.83.56/125" : { "city" : { "confidence" : 40, "geoname_id" : 5803556, "names" : { "en" : "Milton", "ru" : "Мильтон" } }, "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "América del Norte", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "confidence" : 99, "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "location" : { "accuracy_radius" : 22, "latitude" : 47.2513, "longitude" : -122.3149, "metro_code" : 819, "time_zone" : "America/Los_Angeles" }, "postal" : { "code" : "98354", "confidence" : 40 }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "subdivisions" : [ { "confidence" : 99, "geoname_id" : 5815135, "iso_code" : "WA", "names" : { "en" : "Washington", "es" : "Washington", "fr" : "État de Washington", "ja" : "ワシントン州", "ru" : "Вашингтон", "zh-CN" : "华盛顿州" } } ], "traits" : { "autonomous_system_number" : 209, "connection_type" : "Cable/DSL", "isp" : "Century Link", "organization" : "Lariat Software", "static_ip_score" : 1.47, "user_type" : "government" } } }, { "2001:480::/64" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "::212.47.235.81/128" : { "traits" : { "is_anonymous_proxy" : true, "static_ip_score" : 1.47 } } }, { "::212.47.235.82/128" : { "traits" : { "is_satellite_provider" : true, "static_ip_score" : 1.47 } } } ] golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/source-data/GeoIP2-ISP-Test.json000066400000000000000000011236631507532544400312050ustar00rootroot00000000000000[ { "::1.0.128.0/113" : { "isp" : "TOT Public Company Limited", "organization" : "TOT Public Company Limited" } }, { "::1.128.0.0/107" : { "autonomous_system_number" : 1221, "autonomous_system_organization" : "Telstra Pty Ltd", "isp" : "Telstra Internet", "organization" : "Telstra Internet" } }, { "::4.0.0.0/104" : { "isp" : "Level 3 Communications", "organization" : "Level 3 Communications" } }, { "::5.83.124.0/118" : { "isp" : "WifiNetCom" } }, { "::5.145.96.0/117" : { "isp" : "Finecom" } }, { "::8.0.0.0/107" : { "isp" : "Level 3 Communications", "organization" : "Level 3 Communications" } }, { "::8.32.0.0/112" : { "isp" : "Level 3 Communications", "organization" : "Level 3 Communications" } }, { "::8.33.0.0/116" : { "isp" : "Level 3 Communications", "organization" : "Level 3 Communications" } }, { "::8.33.16.0/119" : { "isp" : "Level 3 Communications", "organization" : "Co-Mo Connect" } }, { "::8.33.18.0/119" : { "isp" : "Level 3 Communications", "organization" : "Level 3 Communications" } }, { "::8.33.20.0/118" : { "isp" : "Level 3 Communications", "organization" : "Level 3 Communications" } }, { "::8.33.24.0/117" : { "isp" : "Level 3 Communications", "organization" : "Level 3 Communications" } }, { "::8.33.32.0/115" : { "isp" : "Level 3 Communications", "organization" : "Level 3 Communications" } }, { "::8.33.64.0/114" : { "isp" : "Level 3 Communications", "organization" : "Level 3 Communications" } }, { "::8.33.128.0/113" : { "isp" : "Level 3 Communications", "organization" : "Level 3 Communications" } }, { "::8.34.0.0/111" : { "isp" : "Level 3 Communications", "organization" : "Level 3 Communications" } }, { "::8.36.0.0/110" : { "isp" : "Level 3 Communications", "organization" : "Level 3 Communications" } }, { "::8.40.0.0/109" : { "isp" : "Level 3 Communications", "organization" : "Level 3 Communications" } }, { "::8.48.0.0/108" : { "isp" : "Level 3 Communications", "organization" : "Level 3 Communications" } }, { "::8.64.0.0/106" : { "isp" : "Level 3 Communications", "organization" : "Level 3 Communications" } }, { "::8.128.0.0/105" : { "isp" : "Level 3 Communications", "organization" : "Level 3 Communications" } }, { "::12.0.0.0/106" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.64.0.0/108" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.80.0.0/112" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.81.0.0/114" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.81.64.0/116" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.81.80.0/117" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.81.88.0/118" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.81.92.0/118" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.81.96.0/115" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.81.128.0/113" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.82.0.0/111" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.84.0.0/111" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.86.0.0/112" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.87.0.0/114" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.87.64.0/115" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.87.96.0/116" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.87.112.0/118" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.87.116.0/119" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.87.118.0/119" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Worldnet Services" } }, { "::12.87.120.0/117" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.87.128.0/113" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.88.0.0/109" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.96.0.0/116" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.96.16.0/120" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.96.17.0/120" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.96.18.0/119" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.96.20.0/118" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.96.24.0/117" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.96.32.0/115" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.96.64.0/114" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.96.128.0/113" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.97.0.0/112" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.98.0.0/111" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.100.0.0/110" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.104.0.0/109" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.112.0.0/108" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::12.128.0.0/105" : { "isp" : "AT&T Services", "organization" : "AT&T Services" } }, { "::15.0.0.0/104" : { "autonomous_system_number" : 71, "autonomous_system_organization" : "Hewlett-Packard Company", "isp" : "Hewlett-Packard Company", "organization" : "Hewlett-Packard Company" } }, { "::16.0.0.0/104" : { "autonomous_system_number" : 71, "autonomous_system_organization" : "Hewlett-Packard Company", "isp" : "Hewlett-Packard Company", "organization" : "Hewlett-Packard Company" } }, { "::17.0.0.0/104" : { "isp" : "Apple", "organization" : "Apple" } }, { "::18.0.0.0/104" : { "autonomous_system_number" : 3, "autonomous_system_organization" : "Massachusetts Institute of Technology", "isp" : "Massachusetts Institute of Technology", "organization" : "Massachusetts Institute of Technology" } }, { "::23.32.0.0/107" : { "autonomous_system_number" : 35994, "autonomous_system_organization" : "Akamai Technologies, Inc.", "isp" : "Akamai Technologies", "organization" : "Akamai Technologies" } }, { "::23.32.32.1/128" : { "autonomous_system_number" : 262589, "autonomous_system_organization" : "INTERNEXA Brasil Operadora de Telecomunicações S.A", "isp" : "INTERNEXA Brasil Operadora de Telecomunicações S.A", "organization" : "INTERNEXA Brasil Operadora de Telecomunicações S.A" } }, { "::23.192.0.0/107" : { "autonomous_system_number" : 35994, "autonomous_system_organization" : "Akamai Technologies, Inc.", "isp" : "Akamai Technologies", "organization" : "Akamai Technologies" } }, { "::24.38.243.141/128" : { "organization" : "LAWN MULLEN & GOOD INTERNATIONAL" } }, { "::27.0.16.0/116" : { "isp" : "GLBB" } }, { "::27.192.0.0/107" : { "autonomous_system_number" : 4837, "autonomous_system_organization" : "CNCGROUP China169 Backbone", "isp" : "China Unicom Liaoning", "organization" : "China Unicom Liaoning" } }, { "::31.64.0.0/106" : { "autonomous_system_number" : 12576, "autonomous_system_organization" : "Orange Personal Communications Services" } }, { "::31.224.0.0/107" : { "autonomous_system_number" : 3320, "autonomous_system_organization" : "Deutsche Telekom AG", "isp" : "Deutsche Telekom AG", "organization" : "Deutsche Telekom AG" } }, { "::32.0.0.0/106" : { "organization" : "AT&T Wireless" } }, { "::32.64.0.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.2.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.3.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.4.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.6.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.7.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.8.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.9.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.10.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.11.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.12.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.13.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.14.0/119" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.16.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.17.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.18.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.20.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.21.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.22.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.24.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.25.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.26.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.27.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.28.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.29.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.30.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.31.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.32.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.34.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.35.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.36.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.37.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.38.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.40.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.41.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.42.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.44.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.46.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.47.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.48.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.49.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.50.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.52.0/118" : { "organization" : "AT&T Wireless" } }, { "::32.64.56.0/118" : { "organization" : "AT&T Wireless" } }, { "::32.64.60.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.61.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.62.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.63.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.64.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.66.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.67.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.68.0/118" : { "organization" : "AT&T Wireless" } }, { "::32.64.72.0/119" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.74.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.75.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.76.0/118" : { "organization" : "AT&T Wireless" } }, { "::32.64.80.0/119" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.82.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.84.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.85.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.86.0/119" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.88.0/119" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.90.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.92.0/118" : { "organization" : "AT&T Wireless" } }, { "::32.64.96.0/118" : { "organization" : "AT&T Wireless" } }, { "::32.64.100.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.101.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.102.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.103.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.104.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.106.0/119" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.108.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.109.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.110.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.111.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.112.0/117" : { "organization" : "AT&T Wireless" } }, { "::32.64.120.0/118" : { "organization" : "AT&T Wireless" } }, { "::32.64.124.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.125.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.126.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.127.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.128.0/117" : { "organization" : "AT&T Wireless" } }, { "::32.64.136.0/118" : { "organization" : "AT&T Wireless" } }, { "::32.64.140.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.141.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.142.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.144.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.145.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.146.0/119" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.148.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.149.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.150.0/119" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.152.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.154.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.155.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.156.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.157.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.158.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.159.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.160.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.161.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.162.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.164.0/118" : { "organization" : "AT&T Wireless" } }, { "::32.64.168.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.169.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.170.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.172.0/118" : { "organization" : "AT&T Wireless" } }, { "::32.64.176.0/118" : { "organization" : "AT&T Wireless" } }, { "::32.64.180.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.182.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.183.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.184.0/119" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.186.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.187.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.188.0/119" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.190.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.192.0/118" : { "organization" : "AT&T Wireless" } }, { "::32.64.196.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.197.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.198.0/119" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.200.0/117" : { "organization" : "AT&T Wireless" } }, { "::32.64.208.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.209.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.210.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.211.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.212.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.213.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.214.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.216.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.217.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.218.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.219.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.220.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.221.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.222.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.224.0/118" : { "organization" : "AT&T Wireless" } }, { "::32.64.228.0/119" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.230.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.232.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.234.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.235.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.236.0/119" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.238.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.239.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.240.0/119" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.242.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.243.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.244.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.245.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.246.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.247.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.248.0/120" : { "organization" : "AT&T Wireless" } }, { "::32.64.249.0/120" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.64.250.0/119" : { "organization" : "AT&T Wireless" } }, { "::32.64.252.0/118" : { "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::32.65.0.0/112" : { "organization" : "AT&T Wireless" } }, { "::32.66.0.0/111" : { "organization" : "AT&T Wireless" } }, { "::32.68.0.0/110" : { "organization" : "AT&T Wireless" } }, { "::32.72.0.0/109" : { "organization" : "AT&T Wireless" } }, { "::32.80.0.0/108" : { "organization" : "AT&T Wireless" } }, { "::32.96.0.0/107" : { "organization" : "AT&T Wireless" } }, { "::32.128.0.0/105" : { "organization" : "AT&T Wireless" } }, { "::35.0.0.0/105" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc.", "isp" : "Merit Network", "organization" : "Merit Network" } }, { "::35.128.0.0/107" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc.", "isp" : "Merit Network", "organization" : "Merit Network" } }, { "::36.192.0.0/107" : { "autonomous_system_number" : 9394, "autonomous_system_organization" : "China TieTong Telecommunications Corporation", "isp" : "China TieTong", "organization" : "China TieTong" } }, { "::37.43.3.0/120" : { "isp" : "PFA Mihalascu Viorel" } }, { "::37.60.16.0/117" : { "organization" : "Metroset" } }, { "::37.110.0.0/115" : { "organization" : "National Cable Networks" } }, { "::37.110.32.0/117" : { "organization" : "National Cable Networks" } }, { "::37.110.40.0/120" : { "organization" : "National Cable Networks" } }, { "::37.110.41.0/124" : { "organization" : "National Cable Networks" } }, { "::37.110.41.16/125" : { "organization" : "National Cable Networks" } }, { "::37.110.41.24/128" : { "organization" : "Onlime" } }, { "::37.110.41.25/128" : { "organization" : "National Cable Networks" } }, { "::37.110.41.26/127" : { "organization" : "National Cable Networks" } }, { "::37.110.41.28/126" : { "organization" : "National Cable Networks" } }, { "::37.110.41.32/123" : { "organization" : "National Cable Networks" } }, { "::37.110.41.64/122" : { "organization" : "National Cable Networks" } }, { "::37.110.41.128/121" : { "organization" : "National Cable Networks" } }, { "::37.110.42.0/119" : { "organization" : "National Cable Networks" } }, { "::37.110.44.0/118" : { "organization" : "National Cable Networks" } }, { "::37.110.48.0/116" : { "organization" : "National Cable Networks" } }, { "::37.110.64.0/114" : { "organization" : "National Cable Networks" } }, { "::38.0.0.0/106" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.64.0.0/109" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.72.0.0/112" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.73.0.0/113" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.73.128.0/119" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.73.130.0/120" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "SUMO FIBER" } }, { "::38.73.131.0/120" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.73.132.0/119" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.73.134.0/119" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "SUMO FIBER" } }, { "::38.73.136.0/117" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.73.144.0/116" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.73.160.0/115" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.73.192.0/114" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.74.0.0/111" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.76.0.0/110" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.80.0.0/108" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.96.0.0/109" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.104.0.0/112" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.105.0.0/122" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.105.0.64/123" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "GHD" } }, { "::38.105.0.96/123" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.105.0.128/121" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.105.1.0/120" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.105.2.0/119" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.105.4.0/118" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.105.8.0/117" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.105.16.0/116" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.105.32.0/115" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.105.64.0/114" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.105.128.0/113" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.106.0.0/111" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.108.0.0/114" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.108.64.0/116" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.108.80.0/124" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.108.80.16/125" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.108.80.24/126" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.108.80.28/127" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.108.80.30/128" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "La Presse" } }, { "::38.108.80.31/128" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.108.80.32/123" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.108.80.64/122" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.108.80.128/121" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.108.81.0/120" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.108.82.0/119" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.108.84.0/118" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.108.88.0/117" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.108.96.0/115" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.108.128.0/113" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.109.0.0/112" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.110.0.0/115" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.110.32.0/116" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.110.48.0/118" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Athena Broadband" } }, { "::38.110.52.0/118" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.110.56.0/117" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.110.64.0/114" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.110.128.0/113" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.111.0.0/112" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.112.0.0/108" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::38.128.0.0/105" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications", "isp" : "Cogent Communications", "organization" : "Cogent Communications" } }, { "::39.32.0.0/107" : { "autonomous_system_number" : 45595, "autonomous_system_organization" : "Pakistan Telecom Company Limited", "isp" : "PTCL", "organization" : "PTCL" } }, { "::39.64.0.0/107" : { "autonomous_system_number" : 4837, "autonomous_system_organization" : "CNCGROUP China169 Backbone", "isp" : "China Unicom Liaoning", "organization" : "China Unicom Liaoning" } }, { "::39.192.0.0/106" : { "autonomous_system_number" : 23693, "autonomous_system_organization" : "PT. Telekomunikasi Selular", "isp" : "Telkomsel", "organization" : "Telkomsel" } }, { "::41.74.98.48/124" : { "organization" : "MapleTel" } }, { "::41.112.0.0/108" : { "isp" : "MTN SA" } }, { "::44.0.0.0/104" : { "autonomous_system_number" : 7377, "autonomous_system_organization" : "University of California at San Diego", "isp" : "University of California at San Diego", "organization" : "University of California at San Diego" } }, { "::47.64.0.0/109" : { "isp" : "Vodafone D2 GmbH" } }, { "::47.72.0.0/128" : { "isp" : "Vodafone New Zealand" } }, { "::49.64.0.0/107" : { "autonomous_system_number" : 4134, "autonomous_system_organization" : "Chinanet", "isp" : "China Telecom", "organization" : "China Telecom" } }, { "::50.73.224.133/128" : { "organization" : "iWiSP llc" } }, { "::50.128.0.0/105" : { "autonomous_system_number" : 7922, "autonomous_system_organization" : "Comcast Cable Communications, Inc.", "isp" : "Comcast Cable", "organization" : "Comcast Cable" } }, { "::53.0.0.0/104" : { "autonomous_system_number" : 31399, "autonomous_system_organization" : "Daimler Autonomous System", "isp" : "Daimler", "organization" : "Daimler" } }, { "::55.0.0.0/104" : { "autonomous_system_number" : 721, "autonomous_system_organization" : "DoD Network Information Center" } }, { "::57.0.0.0/104" : { "autonomous_system_number" : 2647, "autonomous_system_organization" : "SITA", "isp" : "SITA", "organization" : "SITA" } }, { "::59.0.0.0/107" : { "autonomous_system_number" : 4766, "autonomous_system_organization" : "Korea Telecom", "isp" : "Korea Telecom", "organization" : "Korea Telecom" } }, { "::60.64.0.0/106" : { "autonomous_system_number" : 17676, "autonomous_system_organization" : "Softbank BB Corp.", "isp" : "Softbank BB Corp", "organization" : "Softbank BB Corp" } }, { "::60.128.0.0/107" : { "autonomous_system_number" : 17676, "autonomous_system_organization" : "Softbank BB Corp.", "isp" : "Softbank BB Corp", "organization" : "Softbank BB Corp" } }, { "::62.7.87.0/120" : { "organization" : "Fibrestream Limited" } }, { "::62.51.0.0/112" : { "isp" : "America Online" } }, { "::62.67.0.0/112" : { "isp" : "Level 3 Communications", "organization" : "Level 3 Communications" } }, { "::62.75.0.0/115" : { "isp" : "OTEGLOBE", "organization" : "OTEGLOBE" } }, { "::62.82.202.128/125" : { "isp" : "Urania Telecom" } }, { "::62.91.95.0/120" : { "isp" : "Bisping & Bisping, ISP and Citycarrier", "organization" : "Bisping & Bisping, ISP and Citycarrier" } }, { "::62.91.96.0/119" : { "isp" : "Bisping & Bisping, ISP and Citycarrier", "organization" : "Bisping & Bisping, ISP and Citycarrier" } }, { "::62.91.98.0/120" : { "isp" : "Bisping & Bisping, ISP and Citycarrier", "organization" : "Bisping & Bisping, ISP and Citycarrier" } }, { "::62.107.0.0/112" : { "isp" : "Telia Stofa A/S", "organization" : "Telia Stofa A/S" } }, { "::62.178.0.0/111" : { "isp" : "UPC Austria GmbH", "organization" : "UPC Austria GmbH" } }, { "::62.254.186.96/123" : { "isp" : "East Renfrewshire Council Barrhead Library", "organization" : "East Renfrewshire Council Barrhead Library" } }, { "::63.147.126.103/128" : { "isp" : "SuperDuper Telecommunications Network" } }, { "::64.17.248.0/118" : { "autonomous_system_number" : 33224 } }, { "::64.17.252.0/119" : { "autonomous_system_number" : 33224 } }, { "::64.17.254.0/121" : { "autonomous_system_number" : 33224 } }, { "::64.17.254.128/122" : { "autonomous_system_number" : 33224 } }, { "::64.17.254.192/124" : { "autonomous_system_number" : 33224 } }, { "::64.17.254.208/125" : { "autonomous_system_number" : 33224 } }, { "::64.17.254.216/125" : { "autonomous_system_number" : 33224, "isp" : "Towerstream I", "organization" : "Karlin Peebles LLP" } }, { "::64.17.254.224/123" : { "autonomous_system_number" : 33224 } }, { "::64.17.255.0/120" : { "autonomous_system_number" : 33224 } }, { "::64.124.194.51/128" : { "organization" : "Kontera" } }, { "::64.143.224.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::64.143.229.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::64.143.246.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::64.213.52.32/123" : { "organization" : "Beyond Next" } }, { "::65.23.96.0/116" : { "autonomous_system_number" : 11456 } }, { "::65.23.112.0/117" : { "autonomous_system_number" : 11456 } }, { "::65.23.120.0/120" : { "autonomous_system_number" : 11456 } }, { "::65.23.121.0/121" : { "autonomous_system_number" : 11456 } }, { "::65.23.121.128/122" : { "autonomous_system_number" : 11456 } }, { "::65.23.121.192/124" : { "autonomous_system_number" : 11456 } }, { "::65.23.121.208/125" : { "autonomous_system_number" : 11456 } }, { "::65.23.121.216/126" : { "autonomous_system_number" : 11456 } }, { "::65.23.121.220/128" : { "autonomous_system_number" : 11456 } }, { "::65.23.121.221/128" : { "autonomous_system_number" : 11456, "isp" : "Nuvox Communications", "organization" : "Endodontic Associates Of Savannah" } }, { "::65.23.121.222/127" : { "autonomous_system_number" : 11456 } }, { "::65.23.121.224/123" : { "autonomous_system_number" : 11456 } }, { "::65.23.122.0/119" : { "autonomous_system_number" : 11456 } }, { "::65.23.124.0/118" : { "autonomous_system_number" : 11456 } }, { "::65.115.241.0/120" : { "autonomous_system_number" : 209 } }, { "::65.115.242.0/119" : { "autonomous_system_number" : 209 } }, { "::65.115.244.0/118" : { "autonomous_system_number" : 209 } }, { "::65.115.248.0/117" : { "autonomous_system_number" : 209 } }, { "::65.116.0.0/119" : { "autonomous_system_number" : 209 } }, { "::65.116.2.0/120" : { "autonomous_system_number" : 209 } }, { "::65.116.3.0/122" : { "autonomous_system_number" : 209 } }, { "::65.116.3.64/124" : { "autonomous_system_number" : 209 } }, { "::65.116.3.80/127" : { "autonomous_system_number" : 209, "isp" : "Century Link", "organization" : "ATMI" } }, { "::65.116.3.82/128" : { "autonomous_system_number" : 209, "isp" : "Century Link", "organization" : "ATMI" } }, { "::65.116.3.83/128" : { "autonomous_system_number" : 209 } }, { "::65.116.3.84/126" : { "autonomous_system_number" : 209 } }, { "::65.116.3.88/125" : { "autonomous_system_number" : 209 } }, { "::65.116.3.96/123" : { "autonomous_system_number" : 209 } }, { "::65.116.3.128/121" : { "autonomous_system_number" : 209 } }, { "::65.116.4.0/118" : { "autonomous_system_number" : 209 } }, { "::65.116.8.0/118" : { "autonomous_system_number" : 209 } }, { "::65.116.12.0/119" : { "autonomous_system_number" : 209 } }, { "::65.128.0.0/107" : { "autonomous_system_number" : 209, "autonomous_system_organization" : "Qwest Communications Company, LLC", "isp" : "CenturyLink", "organization" : "CenturyLink" } }, { "::65.192.0.0/107" : { "autonomous_system_number" : 701, "autonomous_system_organization" : "MCI Communications Services, Inc. d/b/a Verizon Business", "isp" : "Verizon Business", "organization" : "Verizon Business" } }, { "::66.62.204.0/120" : { "organization" : "Johnson Services, LLC." } }, { "::66.92.0.0/113" : { "autonomous_system_number" : 23504 } }, { "::66.92.128.0/115" : { "autonomous_system_number" : 23504 } }, { "::66.92.160.0/116" : { "autonomous_system_number" : 23504 } }, { "::66.92.176.0/118" : { "autonomous_system_number" : 23504 } }, { "::66.92.180.0/120" : { "autonomous_system_number" : 23504 } }, { "::66.92.181.0/121" : { "autonomous_system_number" : 23504 } }, { "::66.92.181.128/122" : { "autonomous_system_number" : 23504 } }, { "::66.92.181.192/123" : { "autonomous_system_number" : 23504 } }, { "::66.92.181.224/124" : { "autonomous_system_number" : 23504 } }, { "::66.92.181.240/124" : { "autonomous_system_number" : 23504, "isp" : "Speakeasy", "organization" : "Vikco Insurance" } }, { "::66.92.182.0/119" : { "autonomous_system_number" : 23504 } }, { "::66.92.184.0/117" : { "autonomous_system_number" : 23504 } }, { "::66.92.192.0/114" : { "autonomous_system_number" : 23504 } }, { "::66.93.0.0/112" : { "autonomous_system_number" : 23504 } }, { "::66.249.146.128/121" : { "isp" : "Digicel Antigua" } }, { "::66.249.156.136/125" : { "isp" : "Digicel Antigua" } }, { "::67.43.149.0/120" : { "autonomous_system_number" : 35908 } }, { "::67.43.150.0/119" : { "autonomous_system_number" : 35908 } }, { "::67.43.152.0/118" : { "autonomous_system_number" : 35908 } }, { "::67.43.156.0/122" : { "autonomous_system_number" : 35908, "isp" : "Loud Packet", "organization" : "zudoarichikito_" } }, { "::67.43.156.64/122" : { "autonomous_system_number" : 35908, "isp" : "Loud Packet", "organization" : "ania_jab?o?ska" } }, { "::67.43.156.128/122" : { "autonomous_system_number" : 35908, "isp" : "Loud Packet", "organization" : "halle_moore" } }, { "::67.43.156.192/122" : { "autonomous_system_number" : 35908, "isp" : "Loud Packet", "organization" : "park_tai" } }, { "::67.43.157.0/120" : { "autonomous_system_number" : 35908 } }, { "::67.43.158.0/119" : { "autonomous_system_number" : 35908 } }, { "::67.160.0.0/107" : { "autonomous_system_number" : 7922, "autonomous_system_organization" : "Comcast Cable Communications, Inc.", "isp" : "Comcast Cable", "organization" : "Comcast Cable" } }, { "::68.2.0.0/111" : { "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::68.4.0.0/110" : { "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::68.9.0.0/112" : { "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::68.12.0.0/112" : { "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::68.20.32.0/117" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::68.23.176.0/118" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::68.32.0.0/107" : { "organization" : "Comcast Cable" } }, { "::68.64.64.0/115" : { "isp" : "WCS", "organization" : "WCS" } }, { "::68.65.192.0/114" : { "isp" : "Colostore.com", "organization" : "Colostore.com" } }, { "::68.67.80.0/116" : { "isp" : "Wave Broadband", "organization" : "Wave Broadband" } }, { "::68.72.8.0/118" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::68.73.96.0/117" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::68.75.32.0/117" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::68.78.64.0/116" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::68.82.0.0/112" : { "isp" : "Comcast Cable", "organization" : "Comcast Cable" } }, { "::68.94.48.0/116" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::68.94.64.0/117" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::68.97.0.0/112" : { "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::68.102.0.0/111" : { "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::68.136.0.0/110" : { "isp" : "UUNET Technologies", "organization" : "UUNET Technologies" } }, { "::68.144.0.0/109" : { "isp" : "Shaw Communications", "organization" : "Shaw Communications" } }, { "::68.168.80.0/116" : { "isp" : "Dbs International", "organization" : "Dbs International" } }, { "::68.168.96.0/116" : { "isp" : "Codero", "organization" : "Codero" } }, { "::68.171.80.0/116" : { "isp" : "Tri-County Telephone", "organization" : "Tri-County Telephone" } }, { "::68.171.192.0/116" : { "isp" : "Datacenter101", "organization" : "Datacenter101" } }, { "::68.176.0.0/112" : { "isp" : "CenturyLink", "organization" : "CenturyLink" } }, { "::68.177.0.0/114" : { "isp" : "CenturyLink", "organization" : "CenturyLink" } }, { "::68.177.64.0/117" : { "isp" : "CenturyLink", "organization" : "Cibola Internet Services" } }, { "::68.177.72.0/117" : { "isp" : "CenturyLink", "organization" : "CenturyLink" } }, { "::68.177.80.0/116" : { "isp" : "CenturyLink", "organization" : "CenturyLink" } }, { "::68.177.96.0/115" : { "isp" : "CenturyLink", "organization" : "CenturyLink" } }, { "::68.177.128.0/113" : { "isp" : "CenturyLink", "organization" : "CenturyLink" } }, { "::68.181.0.0/112" : { "isp" : "University of Southern California", "organization" : "University of Southern California" } }, { "::68.182.0.0/112" : { "isp" : "Telus Communications", "organization" : "Telus Communications" } }, { "::68.183.0.0/112" : { "isp" : "DSL Extreme", "organization" : "DSL Extreme" } }, { "::68.232.64.0/115" : { "isp" : "Yak Communications (Canada) Corp", "organization" : "Yak Communications (Canada) Corp" } }, { "::68.232.96.0/116" : { "isp" : "Channel Clarity Holdings, LLC", "organization" : "Channel Clarity Holdings, LLC" } }, { "::68.240.0.0/109" : { "isp" : "Sprint PCS", "organization" : "Sprint PCS" } }, { "::68.253.48.0/118" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::68.255.96.0/116" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::69.218.35.0/120" : { "autonomous_system_number" : 7132 } }, { "::69.218.36.0/118" : { "autonomous_system_number" : 7132 } }, { "::69.218.40.0/117" : { "autonomous_system_number" : 7132 } }, { "::69.218.48.0/116" : { "autonomous_system_number" : 7132 } }, { "::69.218.64.0/114" : { "autonomous_system_number" : 7132 } }, { "::69.218.128.0/114" : { "autonomous_system_number" : 7132 } }, { "::69.218.192.0/115" : { "autonomous_system_number" : 7132 } }, { "::69.218.224.0/116" : { "autonomous_system_number" : 7132 } }, { "::69.218.240.0/117" : { "autonomous_system_number" : 7132 } }, { "::69.218.248.0/119" : { "autonomous_system_number" : 7132 } }, { "::69.218.250.0/120" : { "autonomous_system_number" : 7132 } }, { "::69.218.251.0/124" : { "autonomous_system_number" : 7132 } }, { "::69.218.251.16/124" : { "autonomous_system_number" : 7132, "isp" : "AT&T Internet Services", "organization" : "r x optical" } }, { "::69.218.251.32/123" : { "autonomous_system_number" : 7132 } }, { "::69.218.251.64/122" : { "autonomous_system_number" : 7132 } }, { "::69.218.251.128/121" : { "autonomous_system_number" : 7132 } }, { "::69.218.252.0/118" : { "autonomous_system_number" : 7132 } }, { "::69.219.0.0/114" : { "autonomous_system_number" : 7132 } }, { "::69.219.64.0/116" : { "autonomous_system_number" : 7132 } }, { "::69.219.80.0/118" : { "autonomous_system_number" : 7132 } }, { "::69.220.29.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::69.220.30.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::70.46.21.0/120" : { "autonomous_system_number" : 11456 } }, { "::70.46.22.0/119" : { "autonomous_system_number" : 11456 } }, { "::70.46.24.0/117" : { "autonomous_system_number" : 11456 } }, { "::70.46.32.0/115" : { "autonomous_system_number" : 11456 } }, { "::70.46.64.0/115" : { "autonomous_system_number" : 11456 } }, { "::70.46.96.0/116" : { "autonomous_system_number" : 11456 } }, { "::70.46.112.0/117" : { "autonomous_system_number" : 11456 } }, { "::70.46.120.0/119" : { "autonomous_system_number" : 11456 } }, { "::70.46.122.0/120" : { "autonomous_system_number" : 11456 } }, { "::70.46.123.0/121" : { "autonomous_system_number" : 11456 } }, { "::70.46.123.128/124" : { "autonomous_system_number" : 11456 } }, { "::70.46.123.144/128" : { "autonomous_system_number" : 11456 } }, { "::70.46.123.145/128" : { "autonomous_system_number" : 11456, "isp" : "FDN Communications", "organization" : "DSLAM WAN Allocation" } }, { "::70.46.123.146/127" : { "autonomous_system_number" : 11456 } }, { "::70.46.123.148/126" : { "autonomous_system_number" : 11456 } }, { "::70.46.123.152/125" : { "autonomous_system_number" : 11456 } }, { "::70.46.123.160/123" : { "autonomous_system_number" : 11456 } }, { "::70.46.123.192/122" : { "autonomous_system_number" : 11456 } }, { "::70.46.124.0/118" : { "autonomous_system_number" : 11456 } }, { "::70.46.128.0/113" : { "autonomous_system_number" : 11456 } }, { "::70.160.0.0/107" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::70.192.0.0/107" : { "autonomous_system_number" : 6167, "autonomous_system_organization" : "Cellco Partnership DBA Verizon Wireless", "isp" : "Verizon Wireless", "organization" : "Verizon Wireless" } }, { "::70.224.0.0/107" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.96.0.0/107" : { "autonomous_system_number" : 701, "autonomous_system_organization" : "MCI Communications Services, Inc. d/b/a Verizon Business", "isp" : "Verizon Business", "organization" : "Verizon Business" } }, { "::71.128.0.0/110" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.132.0.0/111" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.134.0.0/114" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.134.64.0/117" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.134.72.0/118" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.134.76.0/119" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.134.78.0/119" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.134.80.0/116" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.134.96.0/115" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.134.128.0/113" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.135.0.0/112" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.136.0.0/111" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.138.0.0/114" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.138.64.0/115" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.138.96.0/117" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.138.104.0/121" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.138.104.128/122" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.138.104.192/123" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.138.104.224/124" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.138.104.240/125" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "Leung Yin Lam Dba" } }, { "::71.138.104.248/125" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.138.105.0/120" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.138.106.0/119" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.138.108.0/118" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.138.112.0/116" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.138.128.0/113" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.139.0.0/112" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.140.0.0/113" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.140.128.0/114" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.140.192.0/118" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.140.196.0/119" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.140.198.0/119" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.140.200.0/117" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.140.208.0/116" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.140.224.0/115" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.141.0.0/112" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.142.0.0/111" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::71.144.0.0/108" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::72.96.0.0/107" : { "autonomous_system_number" : 6167, "autonomous_system_organization" : "Cellco Partnership DBA Verizon Wireless", "isp" : "Verizon Wireless", "organization" : "Verizon Wireless" } }, { "::72.192.0.0/108" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.208.0.0/110" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.212.0.0/111" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.214.0.0/118" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.214.4.0/119" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.214.6.0/122" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.214.6.64/125" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.214.6.72/128" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Loud Packet", "organization" : "Cox Communications" } }, { "::72.214.6.73/128" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.214.6.74/127" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.214.6.76/126" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.214.6.80/124" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.214.6.96/123" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.214.6.128/121" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.214.7.0/120" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.214.8.0/117" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.214.16.0/116" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.214.32.0/115" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.214.64.0/114" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.214.128.0/113" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.215.0.0/112" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::72.216.0.0/109" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc.", "isp" : "Cox Communications", "organization" : "Cox Communications" } }, { "::73.0.0.0/104" : { "autonomous_system_number" : 7922, "autonomous_system_organization" : "Comcast Cable Communications, Inc.", "isp" : "Comcast Cable", "organization" : "Comcast Cable" } }, { "::74.0.32.0/115" : { "autonomous_system_number" : 18566 } }, { "::74.0.64.0/114" : { "autonomous_system_number" : 18566 } }, { "::74.0.128.0/117" : { "autonomous_system_number" : 18566 } }, { "::74.0.136.0/120" : { "autonomous_system_number" : 18566 } }, { "::74.0.137.0/121" : { "autonomous_system_number" : 18566 } }, { "::74.0.137.128/122" : { "autonomous_system_number" : 18566 } }, { "::74.0.137.192/127" : { "autonomous_system_number" : 18566 } }, { "::74.0.137.194/128" : { "autonomous_system_number" : 18566, "isp" : "Covad Communications", "organization" : "Covad Communications" } }, { "::74.0.137.195/128" : { "autonomous_system_number" : 18566 } }, { "::74.0.137.196/126" : { "autonomous_system_number" : 18566 } }, { "::74.0.137.200/125" : { "autonomous_system_number" : 18566 } }, { "::74.0.137.208/124" : { "autonomous_system_number" : 18566 } }, { "::74.0.137.224/123" : { "autonomous_system_number" : 18566 } }, { "::74.0.138.0/119" : { "autonomous_system_number" : 18566 } }, { "::74.0.140.0/118" : { "autonomous_system_number" : 18566 } }, { "::74.0.144.0/116" : { "autonomous_system_number" : 18566 } }, { "::74.0.160.0/117" : { "autonomous_system_number" : 18566 } }, { "::74.39.211.192/122" : { "organization" : "WHEC TV" } }, { "::74.160.0.0/107" : { "autonomous_system_number" : 6389, "autonomous_system_organization" : "BellSouth.net Inc.", "isp" : "BellSouth.net", "organization" : "BellSouth.net" } }, { "::74.217.148.71/128" : { "organization" : "INTERNAP" } }, { "::74.224.0.0/107" : { "autonomous_system_number" : 6389, "autonomous_system_organization" : "BellSouth.net Inc.", "isp" : "BellSouth.net", "organization" : "BellSouth.net" } }, { "::75.0.0.0/107" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::75.55.67.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::75.55.69.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::75.55.79.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::75.55.97.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::75.55.98.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::75.55.102.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::75.55.110.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::75.62.54.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::75.62.59.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::75.62.61.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::75.62.63.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::75.77.40.0/117" : { "autonomous_system_number" : 11456 } }, { "::75.77.48.0/116" : { "autonomous_system_number" : 11456 } }, { "::75.77.64.0/114" : { "autonomous_system_number" : 11456 } }, { "::75.77.128.0/114" : { "autonomous_system_number" : 11456 } }, { "::75.77.192.0/116" : { "autonomous_system_number" : 11456 } }, { "::75.77.208.0/119" : { "autonomous_system_number" : 11456 } }, { "::75.77.210.0/120" : { "autonomous_system_number" : 11456 } }, { "::75.77.211.0/121" : { "autonomous_system_number" : 11456 } }, { "::75.77.211.128/122" : { "autonomous_system_number" : 11456 } }, { "::75.77.211.192/124" : { "autonomous_system_number" : 11456 } }, { "::75.77.211.208/126" : { "autonomous_system_number" : 11456, "isp" : "Nuvox Communications", "organization" : "Child Care Assoc. Of Brevard County (pinewood)" } }, { "::75.77.211.212/126" : { "autonomous_system_number" : 11456 } }, { "::75.77.211.216/125" : { "autonomous_system_number" : 11456 } }, { "::75.77.211.224/123" : { "autonomous_system_number" : 11456 } }, { "::75.77.212.0/118" : { "autonomous_system_number" : 11456 } }, { "::75.77.216.0/117" : { "autonomous_system_number" : 11456 } }, { "::75.77.224.0/115" : { "autonomous_system_number" : 11456 } }, { "::75.192.0.0/106" : { "autonomous_system_number" : 6167, "autonomous_system_organization" : "Cellco Partnership DBA Verizon Wireless", "isp" : "Verizon Wireless", "organization" : "Verizon Wireless" } }, { "::76.96.0.0/107" : { "autonomous_system_number" : 7922, "autonomous_system_organization" : "Comcast Cable Communications, Inc.", "isp" : "Comcast Cable", "organization" : "Comcast Cable" } }, { "::76.128.0.0/107" : { "autonomous_system_number" : 7922, "autonomous_system_organization" : "Comcast Cable Communications, Inc.", "isp" : "Comcast Cable", "organization" : "Comcast Cable" } }, { "::76.224.0.0/107" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc.", "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::77.74.230.0/119" : { "organization" : "Cutuknet" } }, { "::77.128.0.0/107" : { "autonomous_system_number" : 15557, "autonomous_system_organization" : "Societe Francaise du Radiotelephone S.A", "isp" : "SFR", "organization" : "SFR" } }, { "::78.26.64.0/118" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "::78.26.68.0/119" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "::78.26.70.0/121" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "::78.26.70.128/122" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "::78.26.70.192/124" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "::78.26.70.208/125" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl", "isp" : "ASDASD srl a socio unico", "organization" : "Marino Dalla Gasperina" } }, { "::78.26.70.216/125" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "::78.26.70.224/123" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "::78.26.71.0/120" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "::78.26.72.0/117" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "::78.26.80.0/116" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "::78.26.96.0/116" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "::78.26.112.0/117" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "::78.26.120.0/118" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "::78.26.124.0/119" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "::78.138.56.64/125" : { "organization" : "Clever Technology and Systems Nigeria" } }, { "::78.192.0.0/106" : { "isp" : "Free SAS", "organization" : "Free SAS" } }, { "::79.101.50.0/120" : { "organization" : "SokoWireless.NET!" } }, { "::79.172.210.0/120" : { "isp" : "SzerverPlex Ltd." } }, { "::79.192.0.0/106" : { "autonomous_system_number" : 3320, "autonomous_system_organization" : "Deutsche Telekom AG", "isp" : "Deutsche Telekom AG", "organization" : "Deutsche Telekom AG" } }, { "::80.64.0.0/116" : { "isp" : "TDC Oy Finland", "organization" : "TDC Oy Finland" } }, { "::80.64.192.0/116" : { "isp" : "DataGuard AS", "organization" : "DataGuard AS" } }, { "::80.65.32.0/116" : { "isp" : "WRonline GbR", "organization" : "WRonline GbR" } }, { "::80.66.160.0/116" : { "isp" : "University of Jyvaskyla, Commercial Internet Servi", "organization" : "University of Jyvaskyla, Commercial Internet Servi" } }, { "::80.71.224.0/116" : { "isp" : "Your Voice S.p.A.", "organization" : "Your Voice S.p.A." } }, { "::80.75.224.0/116" : { "isp" : "Teleport Consulting & Systemmanagement GmbH", "organization" : "Teleport Consulting & Systemmanagement GmbH" } }, { "::80.81.192.0/116" : { "isp" : "DE-CIX Management GmbH", "organization" : "DE-CIX Management GmbH" } }, { "::80.128.0.0/107" : { "autonomous_system_number" : 3320, "autonomous_system_organization" : "Deutsche Telekom AG", "isp" : "Deutsche Telekom AG", "organization" : "Deutsche Telekom AG" } }, { "::81.2.69.160/125" : { "isp" : "Andrews & Arnold Ltd", "organization" : "STONEHOUSE office network" } }, { "::81.128.0.0/107" : { "autonomous_system_number" : 2856, "autonomous_system_organization" : "BTnet UK Regional network", "isp" : "BT", "organization" : "BT" } }, { "::81.178.22.65/128" : { "organization" : "Caravan Guard Ltd" } }, { "::82.0.0.0/107" : { "isp" : "Virgin Media", "organization" : "Virgin Media" } }, { "::82.99.0.0/116" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "::82.99.16.0/120" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "::82.99.17.0/122" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "::82.99.17.64/123" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "::82.99.17.96/123" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only", "isp" : "IP-Only Telecommunication Networks AB", "organization" : "Effectiv Solutions" } }, { "::82.99.17.128/121" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "::82.99.18.0/119" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "::82.99.20.0/118" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "::82.99.24.0/117" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "::82.99.32.0/115" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "::82.137.8.0/117" : { "isp" : "RCS & RDS Mobile" } }, { "::82.224.0.0/107" : { "isp" : "Free SAS", "organization" : "Free SAS" } }, { "::83.0.0.0/107" : { "isp" : "Orange Polska Spolka Akcyjna", "organization" : "Orange Polska Spolka Akcyjna" } }, { "::83.100.215.128/121" : { "organization" : "Fibrestream Limited" } }, { "::83.206.10.0/119" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "::83.206.12.0/118" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "::83.206.16.0/116" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "::83.206.32.0/118" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "::83.206.36.0/121" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "::83.206.36.128/122" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "::83.206.36.192/123" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "::83.206.36.224/125" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange", "isp" : "France Telecom", "organization" : "Transports Routiers De Marchandises" } }, { "::83.206.36.232/125" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "::83.206.36.240/124" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "::83.206.37.0/120" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "::83.206.38.0/119" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "::83.206.40.0/117" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "::83.206.48.0/116" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "::83.206.64.0/119" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "::84.128.0.0/106" : { "autonomous_system_number" : 3320, "autonomous_system_organization" : "Deutsche Telekom AG", "isp" : "Deutsche Telekom AG", "organization" : "Deutsche Telekom AG" } }, { "::84.234.48.0/116" : { "isp" : "Linkservice, Ltd" } }, { "::85.88.0.0/119" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH" } }, { "::85.88.2.0/121" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH" } }, { "::85.88.2.128/122" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH" } }, { "::85.88.2.192/123" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH" } }, { "::85.88.2.224/123" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH", "isp" : "Surfplanet GmbH", "organization" : "Surfplanet GmbH" } }, { "::85.88.3.0/120" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH" } }, { "::85.88.4.0/118" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH" } }, { "::85.88.8.0/117" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH" } }, { "::85.88.16.0/116" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH" } }, { "::86.0.0.0/107" : { "isp" : "Virgin Media", "organization" : "Virgin Media" } }, { "::86.105.244.0/118" : { "organization" : "2K Telecom SRL" } }, { "::86.128.0.0/106" : { "isp" : "BT", "organization" : "BT" } }, { "::87.128.0.0/106" : { "autonomous_system_number" : 3320, "autonomous_system_organization" : "Deutsche Telekom AG", "isp" : "Deutsche Telekom AG", "organization" : "Deutsche Telekom AG" } }, { "::87.229.77.0/120" : { "isp" : "SzerverPlex Ltd." } }, { "::88.160.0.0/107" : { "isp" : "Free SAS", "organization" : "Free SAS" } }, { "::89.45.176.0/116" : { "organization" : "2K Telecom SRL" } }, { "::89.80.0.0/109" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "::89.88.0.0/110" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "::89.92.0.0/113" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "::89.92.128.0/114" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "::89.92.192.0/116" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "::89.92.208.0/118" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "::89.92.212.0/119" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP", "isp" : "Bouygues Telecom", "organization" : "Bouygues Telecom" } }, { "::89.92.214.0/119" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "::89.92.216.0/117" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "::89.92.224.0/115" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "::89.93.0.0/112" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "::89.94.0.0/111" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "::89.140.209.0/120" : { "organization" : "WICO" } }, { "::89.160.0.0/116" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "::89.160.16.0/118" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "::89.160.20.0/122" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "::89.160.20.64/123" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "::89.160.20.96/124" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "::89.160.20.112/125" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB", "isp" : "Bredband2 AB", "organization" : "Bevtec" } }, { "::89.160.20.120/125" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "::89.160.20.128/121" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "::89.160.21.0/120" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "::89.160.22.0/119" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "::89.160.24.0/117" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "::89.160.32.0/115" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "::89.160.64.0/114" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "::89.187.32.0/115" : { "isp" : "Monitoring, PA" } }, { "::91.0.0.0/106" : { "autonomous_system_number" : 3320, "autonomous_system_organization" : "Deutsche Telekom AG", "isp" : "Deutsche Telekom AG", "organization" : "Deutsche Telekom AG" } }, { "::91.204.152.0/118" : { "organization" : "X-Com Partners" } }, { "::91.211.200.0/118" : { "isp" : "Specialist Ltd." } }, { "::91.223.175.0/120" : { "organization" : "DATA-COM Piotr Data" } }, { "::91.225.116.0/118" : { "organization" : "RostNet" } }, { "::91.231.240.0/120" : { "organization" : "TELL-NET" } }, { "::91.236.68.0/118" : { "isp" : "Air-Net Elektronik" } }, { "::91.238.12.0/118" : { "isp" : "Linkservice, Ltd" } }, { "::93.170.6.0/120" : { "isp" : "VHG" } }, { "::93.183.128.0/115" : { "isp" : "ESCOM Ltd." } }, { "::93.192.0.0/106" : { "autonomous_system_number" : 3320, "autonomous_system_organization" : "Deutsche Telekom AG", "isp" : "Deutsche Telekom AG", "organization" : "Deutsche Telekom AG" } }, { "::94.103.0.0/116" : { "isp" : "Monitoring, PA" } }, { "::94.156.200.0/117" : { "organization" : "Linkplus" } }, { "::94.199.176.0/119" : { "isp" : "SzerverPlex Ltd." } }, { "::94.243.192.0/116" : { "organization" : "It Region" } }, { "::95.167.144.0/118" : { "organization" : "Internet67" } }, { "::96.128.0.0/106" : { "autonomous_system_number" : 7922, "autonomous_system_organization" : "Comcast Cable Communications, Inc.", "isp" : "Comcast Cable", "organization" : "Comcast Cable" } }, { "::97.0.0.0/106" : { "autonomous_system_number" : 6167, "autonomous_system_organization" : "Cellco Partnership DBA Verizon Wireless", "isp" : "Verizon Wireless", "organization" : "Verizon Wireless" } }, { "::97.128.0.0/105" : { "autonomous_system_number" : 6167, "autonomous_system_organization" : "Cellco Partnership DBA Verizon Wireless", "isp" : "Verizon Wireless", "organization" : "Verizon Wireless" } }, { "::98.192.0.0/106" : { "autonomous_system_number" : 7922, "autonomous_system_organization" : "Comcast Cable Communications, Inc.", "isp" : "Comcast Cable", "organization" : "Comcast Cable" } }, { "::100.43.128.0/120" : { "isp" : "Firecold_Inc", "organization" : "Firecold_Inc" } }, { "::100.43.129.0/122" : { "isp" : "bernice_ulloa", "organization" : "bernice_ulloa" } }, { "::100.43.129.64/123" : { "isp" : "cheng_shih", "organization" : "cheng_shih" } }, { "::100.43.129.96/123" : { "isp" : "loránd_csapó", "organization" : "loránd_csapó" } }, { "::100.43.129.128/124" : { "isp" : "dewei_feng", "organization" : "dewei_feng" } }, { "::100.43.129.144/124" : { "isp" : "radoslav_ja?ar", "organization" : "radoslav_ja?ar" } }, { "::100.43.129.160/124" : { "isp" : "jakub_henderson", "organization" : "jakub_henderson" } }, { "::100.43.129.176/124" : { "isp" : "elisa_blom", "organization" : "elisa_blom" } }, { "::100.43.129.192/125" : { "isp" : "gertrude_burnham", "organization" : "gertrude_burnham" } }, { "::100.43.129.200/125" : { "isp" : "mariam_lovett", "organization" : "mariam_lovett" } }, { "::100.43.129.208/125" : { "isp" : "nicolas_correia", "organization" : "nicolas_correia" } }, { "::100.43.129.224/125" : { "isp" : "rostislav_sou?ek", "organization" : "rostislav_sou?ek" } }, { "::100.43.129.232/125" : { "isp" : "rinkashijikashikuchi_", "organization" : "rinkashijikashikuchi_" } }, { "::100.43.129.240/125" : { "isp" : "huân_??", "organization" : "huân_??" } }, { "::100.43.129.248/125" : { "isp" : "hooriya_harb", "organization" : "hooriya_harb" } }, { "::100.43.130.0/121" : { "isp" : "koufuu_iwasaki", "organization" : "koufuu_iwasaki" } }, { "::100.43.130.128/123" : { "isp" : "ashley_nuckols", "organization" : "ashley_nuckols" } }, { "::100.43.130.160/123" : { "isp" : "julian_barbosa", "organization" : "julian_barbosa" } }, { "::100.43.130.192/123" : { "isp" : "dora_barker", "organization" : "dora_barker" } }, { "::100.43.130.224/123" : { "isp" : "ema_vörös", "organization" : "ema_vörös" } }, { "::100.43.131.0/121" : { "isp" : "kang_ts'ai", "organization" : "kang_ts'ai" } }, { "::100.43.131.128/121" : { "isp" : "dominik_bognár", "organization" : "dominik_bognár" } }, { "::100.43.132.0/121" : { "isp" : "lahbib_coenen", "organization" : "lahbib_coenen" } }, { "::100.43.132.128/124" : { "isp" : "markus_jones", "organization" : "markus_jones" } }, { "::100.43.132.144/124" : { "isp" : "tình_hàn", "organization" : "tình_hàn" } }, { "::100.43.132.160/124" : { "isp" : "luana_beneventi", "organization" : "luana_beneventi" } }, { "::100.43.132.176/124" : { "isp" : "alec_bigley", "organization" : "alec_bigley" } }, { "::100.43.132.192/124" : { "isp" : "walif_boutros", "organization" : "walif_boutros" } }, { "::100.43.132.208/124" : { "isp" : "freddy_hedlund", "organization" : "freddy_hedlund" } }, { "::100.43.132.224/124" : { "isp" : "bernice_ulloa", "organization" : "bernice_ulloa" } }, { "::100.43.132.240/124" : { "isp" : "frigg_torland", "organization" : "frigg_torland" } }, { "::100.43.133.0/122" : { "isp" : "gergely_csorba", "organization" : "gergely_csorba" } }, { "::100.43.133.64/123" : { "isp" : "aglae_aguilar", "organization" : "aglae_aguilar" } }, { "::100.43.133.96/124" : { "isp" : "jeannine_lambert", "organization" : "jeannine_lambert" } }, { "::100.43.133.112/124" : { "isp" : "sandra_sundström", "organization" : "sandra_sundström" } }, { "::100.43.133.128/124" : { "isp" : "teegan_johnston", "organization" : "teegan_johnston" } }, { "::100.43.133.144/124" : { "isp" : "pinabel_tremblay", "organization" : "pinabel_tremblay" } }, { "::100.43.133.160/124" : { "isp" : "ptolomeo_alcalá", "organization" : "ptolomeo_alcalá" } }, { "::100.43.133.176/124" : { "isp" : "guang_ch'ien", "organization" : "guang_ch'ien" } }, { "::100.43.133.192/124" : { "isp" : "grace_hardess", "organization" : "grace_hardess" } }, { "::100.43.133.208/125" : { "isp" : "walerian_król", "organization" : "walerian_król" } }, { "::100.43.133.216/125" : { "isp" : "walerian_król", "organization" : "emma_paulsen" } }, { "::100.43.133.224/125" : { "isp" : "julia_wulf", "organization" : "julia_wulf" } }, { "::100.43.133.232/125" : { "isp" : "joacim_lindgren", "organization" : "joacim_lindgren" } }, { "::100.43.133.248/125" : { "isp" : "qing_yuan_ho", "organization" : "qing_yuan_ho" } }, { "::100.43.134.0/121" : { "isp" : "ferrau_chicoine", "organization" : "ferrau_chicoine" } }, { "::100.43.134.128/124" : { "isp" : "kenneth_hix", "organization" : "kenneth_hix" } }, { "::100.43.134.144/124" : { "isp" : "lok_lu", "organization" : "lok_lu" } }, { "::100.43.134.160/124" : { "isp" : "martino_marcelo", "organization" : "martino_marcelo" } }, { "::100.43.134.176/124" : { "isp" : "kevin_lucio", "organization" : "kevin_lucio" } }, { "::100.43.134.192/124" : { "isp" : "enza_folliero", "organization" : "enza_folliero" } }, { "::100.43.134.208/124" : { "isp" : "miloslav_severa", "organization" : "miloslav_severa" } }, { "::100.43.134.224/124" : { "isp" : "santana_de_munnik", "organization" : "santana_de_munnik" } }, { "::100.43.134.240/124" : { "isp" : "yasunori_kotani", "organization" : "yasunori_kotani" } }, { "::100.43.135.0/122" : { "isp" : "henry_matthews", "organization" : "henry_matthews" } }, { "::100.43.135.64/123" : { "isp" : "mirikashitakuari_", "organization" : "mirikashitakuari_" } }, { "::100.43.135.96/124" : { "isp" : "billy_watkins", "organization" : "billy_watkins" } }, { "::100.43.135.112/124" : { "isp" : "júlia_azevedo", "organization" : "júlia_azevedo" } }, { "::100.43.135.128/124" : { "isp" : "jun_liao", "organization" : "jun_liao" } }, { "::100.43.135.144/124" : { "isp" : "yi_jie_p'eng", "organization" : "yi_jie_p'eng" } }, { "::100.43.135.160/124" : { "isp" : "gerlac_tijerina", "organization" : "gerlac_tijerina" } }, { "::100.43.135.176/124" : { "isp" : "yuriy_kvarda", "organization" : "yuriy_kvarda" } }, { "::100.43.135.192/124" : { "isp" : "châu_l?u", "organization" : "châu_l?u" } }, { "::100.43.135.208/125" : { "isp" : "christina_downing", "organization" : "christina_downing" } }, { "::100.43.135.216/125" : { "isp" : "christina_downing", "organization" : "christian_hallen" } }, { "::100.43.135.224/125" : { "isp" : "konrad_karlsson", "organization" : "konrad_karlsson" } }, { "::100.43.135.232/125" : { "isp" : "malcolm_isaksson", "organization" : "malcolm_isaksson" } }, { "::100.43.135.248/125" : { "isp" : "fábio_castro", "organization" : "fábio_castro" } }, { "::100.43.136.0/124" : { "isp" : "pío_meléndez", "organization" : "pío_meléndez" } }, { "::100.43.136.16/124" : { "isp" : "max_austerlitz", "organization" : "max_austerlitz" } }, { "::100.43.136.32/124" : { "isp" : "george_sanchez", "organization" : "george_sanchez" } }, { "::100.43.136.48/124" : { "isp" : "ricard_bekken", "organization" : "ricard_bekken" } }, { "::100.43.136.64/124" : { "isp" : "dieter_fisher", "organization" : "dieter_fisher" } }, { "::100.43.136.80/124" : { "isp" : "fiddah_kassis", "organization" : "fiddah_kassis" } }, { "::100.43.136.96/124" : { "isp" : "lahbib_coenen", "organization" : "lahbib_coenen" } }, { "::100.43.136.112/125" : { "isp" : "isa_touma", "organization" : "isa_touma" } }, { "::100.43.136.120/125" : { "isp" : "adam_crouch", "organization" : "adam_crouch" } }, { "::100.43.136.128/125" : { "isp" : "evelyn_dahl", "organization" : "evelyn_dahl" } }, { "::100.43.136.144/125" : { "isp" : "fuse_nordlie", "organization" : "fuse_nordlie" } }, { "::100.43.136.152/125" : { "isp" : "monika_jakobsson", "organization" : "monika_jakobsson" } }, { "::100.43.136.160/125" : { "isp" : "korneliusz_kowalczyk", "organization" : "korneliusz_kowalczyk" } }, { "::100.43.136.168/125" : { "isp" : "li_na_kê", "organization" : "li_na_kê" } }, { "::100.43.136.176/125" : { "isp" : "gustava_monaldo", "organization" : "gustava_monaldo" } }, { "::100.43.136.184/125" : { "isp" : "richard_best", "organization" : "richard_best" } }, { "::100.43.136.192/125" : { "isp" : "dirk_daecher", "organization" : "dirk_daecher" } }, { "::100.43.136.200/125" : { "isp" : "george_davis", "organization" : "george_davis" } }, { "::100.43.136.208/125" : { "isp" : "takitatakikato_", "organization" : "takitatakikato_" } }, { "::100.43.136.216/125" : { "isp" : "vsevolod_artemiev", "organization" : "vsevolod_artemiev" } }, { "::100.43.136.224/125" : { "isp" : "rimomeikashite_", "organization" : "rimomeikashite_" } }, { "::100.43.136.240/125" : { "isp" : "regõ_kultsár", "organization" : "regõ_kultsár" } }, { "::100.43.136.248/125" : { "isp" : "turner_ménard", "organization" : "turner_ménard" } }, { "::100.43.137.0/123" : { "isp" : "henio_zawadzki", "organization" : "henio_zawadzki" } }, { "::100.43.137.112/125" : { "isp" : "zhu_tang", "organization" : "zhu_tang" } }, { "::100.43.137.120/125" : { "isp" : "hakem_asfour", "organization" : "hakem_asfour" } }, { "::100.43.137.128/125" : { "isp" : "michael_herring", "organization" : "michael_herring" } }, { "::100.43.137.136/125" : { "isp" : "valeriya_lazareva", "organization" : "valeriya_lazareva" } }, { "::100.43.137.144/125" : { "isp" : "leila_silva", "organization" : "leila_silva" } }, { "::100.43.137.160/125" : { "isp" : "ignacy_sobczak", "organization" : "ignacy_sobczak" } }, { "::100.43.137.168/125" : { "isp" : "sophie_lacharité", "organization" : "sophie_lacharité" } }, { "::100.43.137.176/125" : { "isp" : "isaac_holmes", "organization" : "isaac_holmes" } }, { "::101.0.0.0/118" : { "isp" : "China Telecom FUJIAN", "organization" : "China Telecom FUJIAN" } }, { "::101.0.4.0/118" : { "isp" : "PT Universal Broadband", "organization" : "PT Universal Broadband" } }, { "::101.0.32.0/115" : { "isp" : "Broadband Pacenet Pvt. Ltd", "organization" : "Broadband Pacenet Pvt. Ltd" } }, { "::101.0.64.0/114" : { "isp" : "Digital Pacific Information Technology", "organization" : "Digital Pacific Information Technology" } }, { "::101.0.128.0/113" : { "isp" : "Savecom International Inc.", "organization" : "Savecom International Inc." } }, { "::101.1.4.0/118" : { "isp" : "Hong Kong Science Park", "organization" : "Hong Kong Science Park" } }, { "::101.1.8.0/117" : { "isp" : "jeonju university", "organization" : "jeonju university" } }, { "::101.1.64.0/114" : { "isp" : "Ehime Catv Co.,ltd.", "organization" : "Ehime Catv Co.,ltd." } }, { "::101.1.128.0/113" : { "isp" : "STNet, Incorporated", "organization" : "STNet, Incorporated" } }, { "::101.2.0.0/113" : { "isp" : "Unitech Wireless", "organization" : "Unitech Wireless" } }, { "::101.2.128.0/115" : { "isp" : "Ehime Catv Co.,ltd.", "organization" : "Ehime Catv Co.,ltd." } }, { "::101.2.160.0/117" : { "isp" : "Chittagong Online Limited.", "organization" : "Chittagong Online Limited." } }, { "::101.2.172.0/118" : { "isp" : "China Telecom FUJIAN", "organization" : "China Telecom FUJIAN" } }, { "::101.2.176.0/116" : { "isp" : "Bharti Airtel Lanka Pvt. Limited", "organization" : "Bharti Airtel Lanka Pvt. Limited" } }, { "::101.2.192.0/114" : { "isp" : "Webcentral.com", "organization" : "Webcentral.com" } }, { "::101.3.0.0/116" : { "isp" : "Global Mobile Corp.", "organization" : "Globalmobile" } }, { "::101.3.16.0/116" : { "isp" : "Global Mobile Corp.", "organization" : "Global Mobile Corp." } }, { "::101.3.32.0/115" : { "isp" : "Global Mobile Corp.", "organization" : "Global Mobile Corp." } }, { "::101.3.64.0/114" : { "isp" : "Global Mobile Corp.", "organization" : "Global Mobile Corp." } }, { "::101.3.128.0/113" : { "isp" : "Global Mobile Corp.", "organization" : "Global Mobile Corp." } }, { "::101.4.0.0/112" : { "isp" : "China Education and Research Network", "organization" : "China Education and Research Network" } }, { "::101.5.0.0/112" : { "isp" : "China Education and Research Network", "organization" : "Tsinghua University" } }, { "::101.6.0.0/112" : { "isp" : "China Education and Research Network", "organization" : "China Education and Research Network" } }, { "::101.7.0.0/113" : { "isp" : "China Education and Research Network", "organization" : "China Education and Research Network" } }, { "::101.7.128.0/114" : { "isp" : "China Education and Research Network", "organization" : "China Education and Research Network" } }, { "::101.7.192.0/115" : { "isp" : "China Education and Research Network", "organization" : "China Education and Research Network" } }, { "::101.7.224.0/116" : { "isp" : "China Education and Research Network", "organization" : "China Education and Research Network" } }, { "::101.7.240.0/116" : { "isp" : "China Education and Research Network", "organization" : "Shijiazhuang Netdingthing Technology Co.,Ltd" } }, { "::101.8.0.0/109" : { "isp" : "Taiwan Mobile Co., Ltd.", "organization" : "Taiwan Mobile Co., Ltd." } }, { "::101.16.0.0/108" : { "isp" : "China Unicom Hebei", "organization" : "China Unicom Hebei" } }, { "::101.38.0.0/111" : { "isp" : "Changping District,Beijing", "organization" : "Changping District,Beijing" } }, { "::101.40.0.0/111" : { "isp" : "Changping District,Beijing", "organization" : "Changping District,Beijing" } }, { "::101.44.0.0/110" : { "isp" : "ChengDu Dr.Peng Telecom & Media Group Industry Co.", "organization" : "ChengDu Dr.Peng Telecom & Media Group Industry Co." } }, { "::101.50.0.0/118" : { "isp" : "PT. Beon Intermedia", "organization" : "PT. Beon Intermedia" } }, { "::101.50.16.0/116" : { "isp" : "PT. Mnet Indonesia", "organization" : "PT. Mnet Indonesia" } }, { "::101.51.0.0/112" : { "isp" : "TOT Public Company Limited", "organization" : "TOT Public Company Limited" } }, { "::101.53.64.0/115" : { "isp" : "INDICLUB", "organization" : "INDICLUB" } }, { "::101.55.0.0/113" : { "isp" : "Korea Data Telecommunication Co., Ltd.", "organization" : "Korea Data Telecommunication Co., Ltd." } }, { "::101.56.0.0/109" : { "isp" : "Reliance Communications", "organization" : "Reliance Communications" } }, { "::101.64.0.0/109" : { "isp" : "UNICOM ZheJiang", "organization" : "UNICOM ZheJiang" } }, { "::101.77.0.0/112" : { "isp" : "Jiangsu Electrical Technology Education Center", "organization" : "Jiangsu Electrical Technology Education Center" } }, { "::101.78.8.0/117" : { "isp" : "Enterprise of Telecommunications Lao", "organization" : "Enterprise of Telecommunications Lao" } }, { "::101.78.128.0/113" : { "isp" : "Wharf T&T Limited", "organization" : "Wharf T&T Limited" } }, { "::101.79.0.0/112" : { "isp" : "HCLC", "organization" : "HCLC" } }, { "::101.80.0.0/108" : { "isp" : "China Telecom SHANGHAI", "organization" : "China Telecom SHANGHAI" } }, { "::101.98.0.0/112" : { "isp" : "CallPlus Services Limited", "organization" : "CallPlus Services Limited" } }, { "::101.99.0.0/114" : { "isp" : "CMC Telecom Infrastructure Company", "organization" : "CMC Telecom Infrastructure Company" } }, { "::101.99.128.0/113" : { "isp" : "Kuentos Communications, Inc.", "organization" : "Kuentos Communications, Inc." } }, { "::101.100.0.0/112" : { "isp" : "Vector Communications Ltd", "organization" : "Vector Communications Ltd" } }, { "::101.101.0.0/114" : { "isp" : "Office des Postes et des Telecomm. de Nouvelle Cal", "organization" : "Office des Postes et des Telecomm. de Nouvelle Cal" } }, { "::101.101.112.0/116" : { "isp" : "China Telecom Guangdong", "organization" : "China Telecom Guangdong" } }, { "::101.101.128.0/115" : { "isp" : "JNDINFO", "organization" : "JNDINFO" } }, { "::101.101.160.0/116" : { "isp" : "JNDINFO", "organization" : "JND Communication" } }, { "::101.101.176.0/116" : { "isp" : "JNDINFO", "organization" : "JNDINFO" } }, { "::101.101.192.0/116" : { "isp" : "JNDINFO", "organization" : "JND Communication" } }, { "::101.101.208.0/116" : { "isp" : "JNDINFO", "organization" : "JNDINFO" } }, { "::101.101.224.0/115" : { "isp" : "JNDINFO", "organization" : "JNDINFO" } }, { "::101.102.0.0/114" : { "isp" : "SANYO Information Technology Solutions Co., Ltd.", "organization" : "SANYO Information Technology Solutions Co., Ltd." } }, { "::101.102.64.0/115" : { "isp" : "China Telecom Guangdong", "organization" : "China Telecom Guangdong" } }, { "::101.102.112.0/116" : { "isp" : "China Telecom Guangdong", "organization" : "China Telecom Guangdong" } }, { "::101.102.128.0/113" : { "isp" : "SOFTBANK TELECOM Corp.", "organization" : "SOFTBANK TELECOM Corp." } }, { "::101.103.0.0/112" : { "isp" : "Telstra Internet", "organization" : "Telstra Internet" } }, { "::101.104.0.0/110" : { "isp" : "Beijing Teletron Telecom Engineering Co., Ltd.", "organization" : "Beijing Teletron Telecom Engineering Co., Ltd." } }, { "::101.108.0.0/111" : { "isp" : "TOT Public Company Limited", "organization" : "TOT Public Company Limited" } }, { "::101.110.0.0/114" : { "isp" : "SOFTBANK TELECOM Corp.", "organization" : "SOFTBANK TELECOM Corp." } }, { "::101.110.64.0/115" : { "isp" : "China Telecom Guangdong", "organization" : "China Telecom Guangdong" } }, { "::101.110.128.0/113" : { "isp" : "NTT", "organization" : "NTT" } }, { "::101.111.0.0/112" : { "isp" : "its communications Inc.", "organization" : "its communications Inc." } }, { "::101.112.0.0/109" : { "isp" : "Vodafone Australia", "organization" : "Vodafone Australia" } }, { "::101.120.0.0/110" : { "isp" : "Beijing Bosheng Technology Co., Ltd.", "organization" : "Beijing Bosheng Technology Co., Ltd." } }, { "::101.124.0.0/111" : { "isp" : "KNET Techonlogy (BeiJing) Co.,Ltd.", "organization" : "KNET Techonlogy (BeiJing) Co.,Ltd." } }, { "::101.126.0.0/112" : { "isp" : "Beijing Bitone United Networks Technology Service", "organization" : "Beijing Bitone United Networks Technology Service" } }, { "::101.127.0.0/112" : { "isp" : "Renjiao International Technology Corporation Ltd", "organization" : "Renjiao International Technology Corporation Ltd" } }, { "::101.128.32.0/115" : { "isp" : "China Telecom Guangdong", "organization" : "China Telecom Guangdong" } }, { "::101.128.64.0/114" : { "isp" : "PT. Cyberindo Aditama", "organization" : "PT. Cyberindo Aditama" } }, { "::101.128.128.0/113" : { "isp" : "Internet Initiative Japan Inc.", "organization" : "Internet Initiative Japan Inc." } }, { "::101.129.0.0/112" : { "isp" : "China Central Television", "organization" : "China Central Television" } }, { "::101.130.0.0/111" : { "isp" : "Shanghai Yixuan network technology CO.,LTD", "organization" : "Shanghai Yixuan network technology CO.,LTD" } }, { "::101.132.0.0/110" : { "isp" : "BeiJing Kuandaitong Telecom Technology Co.,Ltd", "organization" : "BeiJing Kuandaitong Telecom Technology Co.,Ltd" } }, { "::101.136.0.0/111" : { "isp" : "Asia Pacific On-Line Service Inc.", "organization" : "Asia Pacific On-Line Service Inc." } }, { "::101.138.0.0/112" : { "isp" : "Asia Pacific On-Line Service Inc.", "organization" : "Asia Pacific Onlie Service Inc." } }, { "::101.139.0.0/112" : { "isp" : "Asia Pacific On-Line Service Inc.", "organization" : "Asia Pacific On-Line Service Inc." } }, { "::101.140.0.0/110" : { "isp" : "K-Opticom Corporation", "organization" : "K-Opticom Corporation" } }, { "::101.144.0.0/108" : { "isp" : "China TieTong", "organization" : "China TieTong" } }, { "::101.160.0.0/107" : { "isp" : "Telstra Internet", "organization" : "Telstra Internet" } }, { "::101.192.0.0/110" : { "isp" : "BeiJing NBLLNET Co.,Ltd", "organization" : "BeiJing NBLLNET Co.,Ltd" } }, { "::101.196.0.0/112" : { "isp" : "Beijing Yuexintong Information Technology Company", "organization" : "Shanghai Xindong Network Co,.Ltd." } }, { "::101.197.0.0/112" : { "isp" : "Beijing Yuexintong Information Technology Company", "organization" : "Beijing Yuexintong Information Technology Company" } }, { "::101.198.0.0/111" : { "isp" : "Beijing Yuexintong Information Technology Company", "organization" : "Beijing Yuexintong Information Technology Company" } }, { "::101.200.0.0/111" : { "isp" : "KNET Techonlogy (BeiJing) Co.,Ltd.", "organization" : "KNET Techonlogy (BeiJing) Co.,Ltd." } }, { "::101.202.0.0/112" : { "isp" : "Dreamline Co.", "organization" : "Dreamline Co." } }, { "::101.203.0.0/113" : { "isp" : "eAccess Ltd.", "organization" : "eAccess Ltd." } }, { "::101.203.128.0/115" : { "isp" : "China Telecom Guangdong", "organization" : "China Telecom Guangdong" } }, { "::101.203.168.0/118" : { "isp" : "Universitas Negeri Yogyakarta", "organization" : "Universitas Negeri Yogyakarta" } }, { "::101.203.192.0/114" : { "isp" : "Bit-isle", "organization" : "Bit-isle" } }, { "::101.204.0.0/110" : { "isp" : "UNICOM Sichuan", "organization" : "UNICOM Sichuan" } }, { "::101.208.0.0/111" : { "isp" : "Aircel Ltd.", "organization" : "Aircel gprs customer Delhi" } }, { "::101.210.0.0/111" : { "isp" : "Aircel Ltd.", "organization" : "Aircel gprs customer Kolkata" } }, { "::101.212.0.0/111" : { "isp" : "Aircel Ltd.", "organization" : "Aircel gprs customer Chennai" } }, { "::101.214.0.0/111" : { "isp" : "Aircel Ltd.", "organization" : "Aircel gprs customer Hyderabad" } }, { "::101.216.0.0/111" : { "isp" : "Aircel Ltd.", "organization" : "Aircel gprs customer Delhi" } }, { "::101.218.0.0/111" : { "isp" : "Aircel Ltd.", "organization" : "Aircel GPRS Customer East" } }, { "::101.220.0.0/111" : { "isp" : "Aircel Ltd.", "organization" : "Aircel GPRS Customer West" } }, { "::101.222.0.0/111" : { "isp" : "Aircel Ltd.", "organization" : "Aircel GPRS Customer South" } }, { "::101.224.0.0/109" : { "isp" : "China Telecom SHANGHAI", "organization" : "China Telecom SHANGHAI" } }, { "::101.234.72.0/118" : { "isp" : "Sliced Tech Holdings Unit Trust", "organization" : "Sliced Tech Holdings Unit Trust" } }, { "::101.235.0.0/115" : { "isp" : "C&M Communication Co.,Ltd.", "organization" : "C&M Communication Co.,Ltd." } }, { "::101.235.48.0/116" : { "isp" : "C&M Communication Co.,Ltd.", "organization" : "C&M Communication Co.,Ltd." } }, { "::101.235.64.0/115" : { "isp" : "C&M Communication Co.,Ltd.", "organization" : "C&M Communication Co.,Ltd." } }, { "::101.235.96.0/116" : { "isp" : "C&M Communication Co.,Ltd.", "organization" : "C&M Communication Co.,Ltd." } }, { "::101.235.176.0/116" : { "isp" : "C&M Communication Co.,Ltd.", "organization" : "C&M Communication Co.,Ltd." } }, { "::101.240.0.0/110" : { "isp" : "Beijing Gehua Catv Network Co., Ltd.", "organization" : "Beijing Gehua Catv Network Co., Ltd." } }, { "::101.255.0.0/112" : { "isp" : "PT Remala Abadi", "organization" : "PT Remala Abadi" } }, { "::103.1.108.0/118" : { "isp" : "Simtronic Technologies Pty Ltd", "organization" : "Simtronic Technologies Pty Ltd" } }, { "::103.1.124.0/118" : { "isp" : "Tata Indicom", "organization" : "Tata Indicom" } }, { "::103.1.128.0/118" : { "isp" : "Fiserv India", "organization" : "Fiserv India" } }, { "::103.1.136.0/118" : { "isp" : "MobileOne", "organization" : "MobileOne" } }, { "::103.1.144.0/120" : { "isp" : "U Mobile Sdn Bhd", "organization" : "U Mobile Sdn Bhd" } }, { "::103.1.146.0/120" : { "isp" : "U Mobile Sdn Bhd", "organization" : "U Mobile Sdn Bhd" } }, { "::103.1.152.0/118" : { "isp" : "Hostemo Technology Sdn Bhd", "organization" : "Hostemo Technology Sdn Bhd" } }, { "::103.1.164.0/118" : { "isp" : "Total Access Communication PLC", "organization" : "Total Access Communication PLC" } }, { "::103.1.172.0/118" : { "isp" : "Godaddy.com", "organization" : "Godaddy.com" } }, { "::103.1.180.0/118" : { "isp" : "Digicel Pacific Ltd", "organization" : "Digicel Pacific Ltd" } }, { "::103.1.184.0/118" : { "isp" : "Mammoth Media Pty Ltd", "organization" : "Mammoth Media Pty Ltd" } }, { "::103.1.188.0/118" : { "isp" : "Beagle Internet Pty Ltd", "organization" : "Beagle Internet Pty Ltd" } }, { "::103.6.100.0/118" : { "isp" : "KINX", "organization" : "KINX" } }, { "::103.9.32.0/118" : { "isp" : "AMWAYKOREA", "organization" : "AMWAYKOREA" } }, { "::103.10.4.0/118" : { "isp" : "ASUSTek COMPUTER INC.", "organization" : "ASUSTek COMPUTER INC." } }, { "::103.10.32.0/118" : { "isp" : "The Cavalry", "organization" : "The Cavalry" } }, { "::103.10.44.0/118" : { "isp" : "Elementary IT & Communications Ltd", "organization" : "Elementary IT & Communications Ltd" } }, { "::103.10.52.0/118" : { "isp" : "Drik ICT Ltd", "organization" : "Drik ICT Ltd" } }, { "::103.10.64.0/118" : { "isp" : "Three Indonesia", "organization" : "Three Indonesia" } }, { "::103.10.76.0/118" : { "isp" : "Augere Wireless Broadband Bangladesh Limited", "organization" : "Augere Wireless Broadband Bangladesh Limited" } }, { "::103.10.84.0/118" : { "isp" : "Elink-space (Beijing) Technology Co,. Ltd '", "organization" : "Elink-space (Beijing) Technology Co,. Ltd '" } }, { "::103.10.96.0/118" : { "isp" : "Neuviz (PT. Piranti Prestasi Informasi)", "organization" : "Neuviz (PT. Piranti Prestasi Informasi)" } }, { "::103.10.104.0/118" : { "isp" : "Bogor Agricultural University", "organization" : "Bogor Agricultural University" } }, { "::103.10.120.0/118" : { "isp" : "PT Sumber Data Indonesia", "organization" : "PT Sumber Data Indonesia" } }, { "::103.10.132.0/118" : { "isp" : "Vainavi Industries Ltd.", "organization" : "Vainavi Industries Ltd." } }, { "::103.10.144.0/120" : { "isp" : "Universitas Muhammadiyah Malang", "organization" : "Universitas Muhammadiyah Malang" } }, { "::103.10.152.0/118" : { "isp" : "Meralco Avenue", "organization" : "Meralco Avenue" } }, { "::103.10.169.0/120" : { "isp" : "Universitas Riau", "organization" : "Universitas Riau" } }, { "::103.10.172.0/118" : { "isp" : "Wavecom Wireless Ltd", "organization" : "Wavecom Wireless Ltd" } }, { "::103.10.176.0/118" : { "isp" : "Liberty Broadcasting Network Inc.", "organization" : "Liberty Broadcasting Network Inc." } }, { "::103.10.196.0/120" : { "isp" : "Hostemo Technology Sdn Bhd", "organization" : "Hostemo Technology Sdn Bhd" } }, { "::103.10.198.0/120" : { "isp" : "Hostemo Technology Sdn Bhd", "organization" : "Hostemo Technology Sdn Bhd" } }, { "::103.10.208.0/118" : { "isp" : "Meghbela Cable & Broadband Services (P) Ltd", "organization" : "Meghbela Cable & Broadband Services (P) Ltd" } }, { "::103.10.224.0/118" : { "isp" : "Indusind Media and Communications Ltd.", "organization" : "Indusind Media and Communications Ltd." } }, { "::103.10.236.0/118" : { "isp" : "Goldfield Industrial Building", "organization" : "Goldfield Industrial Building" } }, { "::103.10.248.0/118" : { "isp" : "Andheri East", "organization" : "Andheri East" } }, { "::103.11.28.0/118" : { "isp" : "PT Sumber Data Indonesia", "organization" : "PT Sumber Data Indonesia" } }, { "::103.11.52.0/118" : { "isp" : "RackCentral Pty Ltd", "organization" : "RackCentral Pty Ltd" } }, { "::103.11.124.0/118" : { "isp" : "Unleash Computers Ltd", "organization" : "Unleash Computers Ltd" } }, { "::103.11.152.0/118" : { "isp" : "Web Werks India Pvt.", "organization" : "Web Werks India Pvt." } }, { "::103.11.172.0/118" : { "isp" : "Joint stock Commercial Bank for Foreign Trade of V", "organization" : "Joint stock Commercial Bank for Foreign Trade of V" } }, { "::103.11.192.0/118" : { "isp" : "MCS Com Co Ltd", "organization" : "MCS Com Co Ltd" } }, { "::103.11.204.0/118" : { "isp" : "VentraIP Group (Australia) Pty Ltd", "organization" : "VentraIP Group (Australia) Pty Ltd" } }, { "::103.11.228.1/128" : { "isp" : "i-System Technology Limited", "organization" : "i-System Technology Limited" } }, { "::103.11.228.2/127" : { "isp" : "i-System Technology Limited", "organization" : "i-System Technology Limited" } }, { "::103.11.228.4/126" : { "isp" : "i-System Technology Limited", "organization" : "i-System Technology Limited" } }, { "::103.11.228.8/125" : { "isp" : "i-System Technology Limited", "organization" : "i-System Technology Limited" } }, { "::103.11.228.16/124" : { "isp" : "i-System Technology Limited", "organization" : "i-System Technology Limited" } }, { "::103.11.228.32/123" : { "isp" : "i-System Technology Limited", "organization" : "i-System Technology Limited" } }, { "::103.11.228.64/122" : { "isp" : "i-System Technology Limited", "organization" : "i-System Technology Limited" } }, { "::103.11.228.128/121" : { "isp" : "i-System Technology Limited", "organization" : "i-System Technology Limited" } }, { "::103.11.229.0/120" : { "isp" : "i-System Technology Limited", "organization" : "i-System Technology Limited" } }, { "::103.11.230.0/119" : { "isp" : "i-System Technology Limited", "organization" : "i-System Technology Limited" } }, { "::103.11.244.0/118" : { "isp" : "Langham Place Office Tower", "organization" : "Langham Place Office Tower" } }, { "::103.23.84.0/118" : { "isp" : "C&M Communication Co.,Ltd.", "organization" : "C&M Communication Co.,Ltd." } }, { "::103.23.132.0/118" : { "organization" : "Digi" } }, { "::103.28.60.0/118" : { "isp" : "Cmb Taegu Dongbu Broadcast", "organization" : "Cmb Taegu Dongbu Broadcast" } }, { "::103.246.248.0/120" : { "organization" : "QuickWeb Hosting Solutions" } }, { "::104.64.0.0/106" : { "autonomous_system_number" : 35994, "autonomous_system_organization" : "Akamai Technologies, Inc.", "isp" : "Akamai Technologies", "organization" : "Akamai Technologies" } }, { "::105.110.0.0/115" : { "isp" : "Fawri wilaya Batna", "organization" : "Fawri wilaya Batna" } }, { "::105.111.0.0/113" : { "isp" : "Anis wilaya oran", "organization" : "Anis wilaya oran" } }, { "::105.111.192.0/114" : { "isp" : "Anis wilaya Bechar", "organization" : "Anis wilaya Bechar" } }, { "::105.112.0.0/108" : { "isp" : "Airtel Networks Limited", "organization" : "Airtel Networks Limited" } }, { "::105.128.0.0/108" : { "isp" : "Maroc Telecom", "organization" : "Maroc Telecom 3G" } }, { "::105.144.0.0/109" : { "isp" : "Maroc Telecom", "organization" : "Maroc Telecom 3G" } }, { "::105.152.0.0/111" : { "isp" : "Maroc Telecom", "organization" : "Maroc Telecom 3G" } }, { "::105.154.0.0/112" : { "isp" : "Maroc Telecom", "organization" : "Maroc Telecom 3G" } }, { "::105.155.0.0/112" : { "isp" : "Maroc Telecom", "organization" : "Maroc Telecom" } }, { "::105.156.0.0/111" : { "isp" : "Maroc Telecom", "organization" : "Maroc Telecom" } }, { "::105.158.0.0/112" : { "isp" : "Maroc Telecom", "organization" : "Maroc Telecom" } }, { "::105.159.0.0/112" : { "isp" : "Maroc Telecom", "organization" : "IAM" } }, { "::105.160.0.0/109" : { "isp" : "Safaricom Limited", "organization" : "Safaricom Limited" } }, { "::105.168.0.0/109" : { "isp" : "Unitel SA", "organization" : "Unitel SA" } }, { "::105.176.0.0/111" : { "isp" : "MTN Business Solutions (Pty) Ltd", "organization" : "MTN Business Solutions (Pty) Ltd" } }, { "::105.180.0.0/110" : { "isp" : "Mobinil 3G", "organization" : "Mobinil 3G" } }, { "::105.184.0.0/110" : { "isp" : "Telkom Internet", "organization" : "Telkom Internet" } }, { "::105.192.0.0/110" : { "isp" : "Mobinil 3G", "organization" : "Mobinil 3G" } }, { "::105.196.0.0/110" : { "isp" : "Airtel Networks Nigeria Ltd", "organization" : "Airtel Networks Nigeria Ltd" } }, { "::105.200.0.0/110" : { "isp" : "Etisalat Misr", "organization" : "Etisalat" } }, { "::105.204.0.0/111" : { "isp" : "Etisalat Misr", "organization" : "Etisalat" } }, { "::105.206.0.0/112" : { "isp" : "Etisalat Misr", "organization" : "Etisalat" } }, { "::105.207.0.0/113" : { "isp" : "Etisalat Misr", "organization" : "Etisalat" } }, { "::105.207.128.0/113" : { "isp" : "Etisalat Misr", "organization" : "Etisalat Misr" } }, { "::105.208.0.0/108" : { "isp" : "MTN SA", "organization" : "MTN SA" } }, { "::105.224.0.0/110" : { "isp" : "Telkom Internet", "organization" : "Telkom Internet" } }, { "::105.228.0.0/111" : { "isp" : "Telkom Internet", "organization" : "Telkom Internet" } }, { "::105.230.0.0/112" : { "isp" : "Airtel Broadband", "organization" : "Airtel Broadband" } }, { "::105.231.0.0/113" : { "isp" : "Second segment of Broadband IPs", "organization" : "Second segment of Broadband IPs" } }, { "::105.231.128.0/114" : { "isp" : "Third segment of Airtel Broadband IPs", "organization" : "Third segment of Airtel Broadband IPs" } }, { "::105.231.192.0/114" : { "isp" : "Reserved for Internet APN Allocation", "organization" : "Reserved for Internet APN Allocation" } }, { "::105.232.0.0/113" : { "isp" : "MTC - Mobile Telecommunications, Ltd.", "organization" : "MTC Netman" } }, { "::105.232.128.0/113" : { "isp" : "MTC - Mobile Telecommunications, Ltd.", "organization" : "MTC - Mobile Telecommunications, Ltd." } }, { "::105.233.0.0/114" : { "isp" : "Cybersmart", "organization" : "Cybersmart-ADSL-DBN ADSL IP numbers assigned to Db" } }, { "::105.233.64.0/114" : { "isp" : "Cybersmart", "organization" : "Cybersmart-ADSL-JHB ADSL IP for Northern regios" } }, { "::105.233.128.0/113" : { "isp" : "Cybersmart", "organization" : "Cybersmart" } }, { "::105.234.0.0/113" : { "isp" : "Airtel Malawi GPRS subscribers", "organization" : "Airtel Malawi GPRS subscribers" } }, { "::105.234.128.0/113" : { "isp" : "Airtel Malawi network", "organization" : "Airtel Malawi network" } }, { "::105.235.0.0/113" : { "isp" : "MTN Cote d'Ivoire S.A", "organization" : "MTN Cote d'Ivoire S.A" } }, { "::105.235.128.0/116" : { "isp" : "Wataniya Telecom Algerie", "organization" : "Wataniya Telecom Algerie" } }, { "::105.235.144.0/116" : { "isp" : "Emtel Ltd", "organization" : "Emtel Ltd" } }, { "::105.235.160.0/116" : { "isp" : "Bytes Connect, a Division of Bytes Technology Grou", "organization" : "Bytes Connect, a Division of Bytes Technology Grou" } }, { "::105.235.176.0/116" : { "isp" : "Telecel Faso", "organization" : "Telecel Faso" } }, { "::105.235.192.0/116" : { "isp" : "Icsl Network", "organization" : "Icsl Network" } }, { "::105.235.216.0/117" : { "isp" : "Abari Communications Mozambique Lda", "organization" : "Abari Communications Mozambique Lda" } }, { "::105.235.224.0/116" : { "isp" : "Guineanet", "organization" : "Guineanet" } }, { "::105.235.240.0/116" : { "isp" : "Orange Botswana", "organization" : "Orange Botswana" } }, { "::105.236.0.0/111" : { "isp" : "MTN Business Solutions (Pty) Ltd", "organization" : "MTN Business Solutions (Pty) Ltd" } }, { "::105.238.0.0/111" : { "isp" : "Zain Sudan", "organization" : "Zain Sudan" } }, { "::105.240.0.0/108" : { "isp" : "Vodacom", "organization" : "Vodacom" } }, { "::106.186.80.0/117" : { "isp" : "GLBB" } }, { "::108.66.24.0/118" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.68.60.0/118" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.68.92.0/118" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.69.8.0/118" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.69.180.0/118" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.70.56.0/117" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.74.80.0/116" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.75.232.0/117" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.80.92.0/118" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.83.64.0/118" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.85.4.0/118" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.90.88.0/117" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.95.60.0/118" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.96.0.0/107" : { "isp" : "Sprint PCS", "organization" : "Sprint PCS" } }, { "::108.144.0.0/108" : { "isp" : "AT&T Wireless", "organization" : "AT&T Wireless" } }, { "::108.160.48.0/116" : { "isp" : "Telebeep", "organization" : "Telebeep" } }, { "::108.160.64.0/116" : { "isp" : "Sebastian", "organization" : "Sebastian" } }, { "::108.160.80.0/116" : { "isp" : "Quadro Communications Co-Operative", "organization" : "Quadro Communications Co-Operative" } }, { "::108.163.64.0/114" : { "isp" : "Region 14 Education Service Center", "organization" : "Region 14 Education Service Center" } }, { "::108.163.192.0/114" : { "isp" : "SingleHop", "organization" : "SingleHop" } }, { "::108.164.0.0/112" : { "isp" : "The Cosmopolitan of Las Vegas", "organization" : "The Cosmopolitan of Las Vegas" } }, { "::108.165.0.0/112" : { "isp" : "Ace Data Centers", "organization" : "Ace Data Centers" } }, { "::108.170.192.0/114" : { "isp" : "Google", "organization" : "Google" } }, { "::108.171.32.0/115" : { "isp" : "Smart Solutions IT", "organization" : "Smart Solutions IT" } }, { "::108.171.72.0/117" : { "isp" : "Cogeco Cable", "organization" : "Cogeco Cable" } }, { "::108.172.0.0/111" : { "isp" : "Telus Communications", "organization" : "Telus Communications" } }, { "::108.174.80.0/116" : { "isp" : "Volusion", "organization" : "Volusion" } }, { "::108.180.0.0/111" : { "isp" : "Telus Communications", "organization" : "Telus Communications" } }, { "::108.182.0.0/111" : { "isp" : "Time Warner Cable", "organization" : "Time Warner Cable" } }, { "::108.184.0.0/111" : { "isp" : "Time Warner Cable", "organization" : "Time Warner Cable" } }, { "::108.187.0.0/112" : { "isp" : "SpeedVM Network Group LLC", "organization" : "SpeedVM Network Group LLC" } }, { "::108.190.0.0/111" : { "isp" : "Bright House Networks", "organization" : "Bright House Networks" } }, { "::108.192.0.0/107" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.224.0.0/110" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.228.0.0/112" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.229.0.0/113" : { "isp" : "AT&T Internet Services", "organization" : "AT&T" } }, { "::108.229.128.0/113" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.230.0.0/111" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.232.0.0/109" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.240.0.0/110" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.244.0.0/113" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.244.128.0/115" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.244.160.0/116" : { "isp" : "AT&T Internet Services", "organization" : "Lisle IDC - Silver Lining" } }, { "::108.244.176.0/116" : { "isp" : "AT&T Internet Services", "organization" : "Atlanta - Silver Lining" } }, { "::108.244.192.0/114" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.245.0.0/112" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.246.0.0/111" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::108.248.0.0/109" : { "isp" : "AT&T Internet Services", "organization" : "AT&T Internet Services" } }, { "::109.104.250.0/121" : { "organization" : "Navigadsl srl" } }, { "::109.105.192.0/115" : { "organization" : "Cutuknet" } }, { "::109.235.55.192/123" : { "organization" : "Encryption Limited" } }, { "::110.8.112.0/116" : { "isp" : "SK Broadband Co Ltd", "organization" : "SK Broadband Co Ltd" } }, { "::110.9.0.0/116" : { "isp" : "SK Broadband Co Ltd", "organization" : "SK Broadband Co Ltd" } }, { "::110.9.96.0/116" : { "isp" : "SK Broadband Co Ltd", "organization" : "SK Broadband Co Ltd" } }, { "::110.10.16.0/116" : { "isp" : "SK Broadband Co Ltd", "organization" : "SK Broadband Co Ltd" } }, { "::110.11.64.0/116" : { "isp" : "SK Broadband Co Ltd", "organization" : "SK Broadband Co Ltd" } }, { "::110.11.176.0/116" : { "isp" : "SK Broadband Co Ltd", "organization" : "SK Broadband Co Ltd" } }, { "::110.11.240.0/116" : { "isp" : "SK Broadband Co Ltd", "organization" : "SK Broadband Co Ltd" } }, { "::110.12.80.0/116" : { "isp" : "SK Broadband Co Ltd", "organization" : "SK Broadband Co Ltd" } }, { "::110.12.128.0/116" : { "isp" : "SK Broadband Co Ltd", "organization" : "SK Broadband Co Ltd" } }, { "::110.13.112.0/116" : { "isp" : "SK Broadband Co Ltd", "organization" : "SK Broadband Co Ltd" } }, { "::110.13.128.0/116" : { "isp" : "SK Broadband Co Ltd", "organization" : "SK Broadband Co Ltd" } }, { "::110.14.48.0/116" : { "isp" : "SK Broadband Co Ltd", "organization" : "SK Broadband Co Ltd" } }, { "::110.14.160.0/116" : { "isp" : "SK Broadband Co Ltd", "organization" : "SK Broadband Co Ltd" } }, { "::110.14.192.0/116" : { "isp" : "SK Broadband Co Ltd", "organization" : "SK Broadband Co Ltd" } }, { "::110.15.192.0/116" : { "isp" : "SK Broadband Co Ltd", "organization" : "SK Broadband Co Ltd" } }, { "::110.15.224.0/116" : { "isp" : "SK Broadband Co Ltd", "organization" : "SK Broadband Co Ltd" } }, { "::110.35.0.0/116" : { "isp" : "CMB Daejeon Broadcasting Co,.Ltd", "organization" : "CMB Daejeon Broadcasting Co,.Ltd" } }, { "::110.35.53.0/120" : { "isp" : "CMB Daejeon Broadcasting Co,.Ltd", "organization" : "CMB Daejeon Broadcasting Co,.Ltd" } }, { "::110.35.54.0/119" : { "isp" : "CMB Daejeon Broadcasting Co,.Ltd", "organization" : "CMB Daejeon Broadcasting Co,.Ltd" } }, { "::110.35.56.0/120" : { "isp" : "CMB Daejeon Broadcasting Co,.Ltd", "organization" : "CMB Daejeon Broadcasting Co,.Ltd" } }, { "::111.0.0.0/106" : { "autonomous_system_number" : 9808, "autonomous_system_organization" : "Guangdong Mobile Communication Co.Ltd.", "isp" : "Guangdong Mobile", "organization" : "Guangdong Mobile" } }, { "::111.91.128.0/116" : { "isp" : "NHN", "organization" : "NHN" } }, { "::111.91.144.0/118" : { "isp" : "Korea Cable TV Kwangju Broadcast", "organization" : "Korea Cable TV Kwangju Broadcast" } }, { "::111.91.160.0/116" : { "isp" : "Korea Cable TV Kwangju Broadcast", "organization" : "Korea Cable TV Kwangju Broadcast" } }, { "::112.0.0.0/106" : { "autonomous_system_number" : 9808, "autonomous_system_organization" : "Guangdong Mobile Communication Co.Ltd.", "isp" : "Guangdong Mobile", "organization" : "Guangdong Mobile" } }, { "::112.72.160.0/116" : { "isp" : "Hyundai Communications & Network", "organization" : "Hyundai Communications & Network" } }, { "::112.72.192.0/116" : { "isp" : "Hyundai Communications & Network", "organization" : "Hyundai Communications & Network" } }, { "::112.72.224.0/115" : { "isp" : "Hyundai Communications & Network", "organization" : "Hyundai Communications & Network" } }, { "::112.76.0.0/111" : { "isp" : "Dacom-pubnetplus", "organization" : "Dacom-pubnetplus" } }, { "::112.121.0.0/115" : { "isp" : "Tbroad Abc Broadcasting Co.,ltd.", "organization" : "Tbroad Abc Broadcasting Co.,ltd." } }, { "::113.30.0.0/116" : { "isp" : "TBROAD Dongdaemun cable networks,Inc.", "organization" : "TBROAD Dongdaemun cable networks,Inc." } }, { "::113.30.32.0/116" : { "isp" : "TBROAD Dongdaemun cable networks,Inc.", "organization" : "TBROAD Dongdaemun cable networks,Inc." } }, { "::113.30.64.0/116" : { "isp" : "HCLC", "organization" : "HCLC" } }, { "::113.30.96.0/116" : { "isp" : "HCLC", "organization" : "HCLC" } }, { "::113.30.121.0/120" : { "isp" : "HCLC", "organization" : "HCLC" } }, { "::113.30.122.0/119" : { "isp" : "HCLC", "organization" : "HCLC" } }, { "::113.30.124.0/120" : { "isp" : "HCLC", "organization" : "HCLC" } }, { "::113.61.16.0/116" : { "isp" : "Korea Cable TV Jeonboog Broadcast", "organization" : "Korea Cable TV Jeonboog Broadcast" } }, { "::113.130.66.0/119" : { "isp" : "ONSE Telecom", "organization" : "ONSE Telecom" } }, { "::113.130.68.0/119" : { "isp" : "ONSE Telecom", "organization" : "ONSE Telecom" } }, { "::113.130.128.0/116" : { "isp" : "Cj-hellovision", "organization" : "Cj-hellovision" } }, { "::113.130.208.0/116" : { "isp" : "Cj-hellovision", "organization" : "Cj-hellovision" } }, { "::113.131.16.0/116" : { "isp" : "Cj-hellovision", "organization" : "Cj-hellovision" } }, { "::113.131.192.0/116" : { "isp" : "Cj-hellovision", "organization" : "Cj-hellovision" } }, { "::114.23.240.0/120" : { "isp" : "Swiift Internet Limited" } }, { "::114.30.48.0/116" : { "isp" : "korea cable pohang broadcasting", "organization" : "korea cable pohang broadcasting" } }, { "::114.30.128.0/113" : { "isp" : "HO Nam Cable TV co.,LTD", "organization" : "HO Nam Cable TV co.,LTD" } }, { "::114.31.48.0/116" : { "isp" : "HyosungITX", "organization" : "HyosungITX" } }, { "::114.108.144.0/117" : { "isp" : "Lg Dacom Kidc", "organization" : "Lg Dacom Kidc" } }, { "::114.108.160.0/116" : { "isp" : "Lg Dacom Kidc", "organization" : "Lg Dacom Kidc" } }, { "::114.108.176.0/118" : { "isp" : "Lg Dacom Kidc", "organization" : "Lg Dacom Kidc" } }, { "::114.141.224.0/116" : { "isp" : "Piranha Systems", "organization" : "Piranha Systems" } }, { "::114.179.160.0/115" : { "isp" : "GLBB" } }, { "::115.68.16.0/116" : { "isp" : "Smileserv", "organization" : "Smileserv" } }, { "::115.71.0.0/116" : { "isp" : "G&j, Ltd.", "organization" : "G&j, Ltd." } }, { "::115.144.16.0/116" : { "isp" : "HAIonNet", "organization" : "HAIonNet" } }, { "::115.144.224.0/116" : { "isp" : "HAIonNet", "organization" : "HAIonNet" } }, { "::116.67.0.0/113" : { "isp" : "National Computing & Information Agency", "organization" : "National Computing & Information Agency" } }, { "::116.68.32.0/115" : { "isp" : "Korea Nazarene University", "organization" : "Korea Nazarene University" } }, { "::116.90.216.0/117" : { "isp" : "Catholic University of DAEGU", "organization" : "Catholic University of DAEGU" } }, { "::116.200.16.0/116" : { "isp" : "Korea Telecom Freetel Corp.", "organization" : "Korea Telecom Freetel Corp." } }, { "::116.201.0.0/116" : { "isp" : "Korea Telecom Freetel Corp.", "organization" : "Korea Telecom Freetel Corp." } }, { "::116.201.240.0/116" : { "isp" : "Korea Telecom Freetel Corp.", "organization" : "Korea Telecom Freetel Corp." } }, { "::117.58.132.0/118" : { "isp" : "TCN Daegu Broadcasting Co., Ltd", "organization" : "TCN Daegu Broadcasting Co., Ltd" } }, { "::117.58.136.0/117" : { "isp" : "TCN Daegu Broadcasting Co., Ltd", "organization" : "TCN Daegu Broadcasting Co., Ltd" } }, { "::117.128.0.0/106" : { "autonomous_system_number" : 9808, "autonomous_system_organization" : "Guangdong Mobile Communication Co.Ltd.", "isp" : "Guangdong Mobile", "organization" : "Guangdong Mobile" } }, { "::118.67.128.0/115" : { "isp" : "NURILINK", "organization" : "NURILINK" } }, { "::118.67.160.0/116" : { "isp" : "NURILINK", "organization" : "NURILINK" } }, { "::118.67.176.0/116" : { "isp" : "NURILINK", "organization" : "SRUN" } }, { "::118.91.96.0/115" : { "isp" : "Tbroad Gangseo", "organization" : "Tbroad Gangseo" } }, { "::118.234.112.0/116" : { "isp" : "Korea Telecom Freetel Corp.", "organization" : "Korea Telecom Freetel Corp." } }, { "::119.30.136.0/118" : { "isp" : "IP4 Networks, Inc.", "organization" : "IP4 Networks, Inc." } }, { "::119.63.224.0/116" : { "isp" : "Cj-hellovision", "organization" : "Cj-hellovision" } }, { "::119.77.108.0/118" : { "isp" : "Korea Cable TV Kwangju Broadcast", "organization" : "Korea Cable TV Kwangju Broadcast" } }, { "::119.235.240.0/117" : { "isp" : "Cmb Taegu Dongbu Broadcast", "organization" : "Cmb Taegu Dongbu Broadcast" } }, { "::120.73.0.0/112" : { "isp" : "KUMHO", "organization" : "KUMHO" } }, { "::120.136.6.0/120" : { "organization" : "Maxum Data Ltd" } }, { "::120.192.0.0/106" : { "autonomous_system_number" : 9808, "autonomous_system_organization" : "Guangdong Mobile Communication Co.Ltd.", "isp" : "Guangdong Mobile", "organization" : "Guangdong Mobile" } }, { "::121.0.128.0/118" : { "isp" : "Duruan", "organization" : "Duruan" } }, { "::121.0.144.0/118" : { "isp" : "Duruan", "organization" : "Duruan" } }, { "::121.254.224.0/116" : { "isp" : "Lg Dacom Kidc", "organization" : "Lg Dacom Kidc" } }, { "::122.128.64.0/117" : { "isp" : "CMB Kwnagju Broadcasting", "organization" : "CMB Kwnagju Broadcasting" } }, { "::122.128.72.0/118" : { "isp" : "CMB Kwnagju Broadcasting", "organization" : "CMB Kwnagju Broadcasting" } }, { "::122.252.192.0/115" : { "isp" : "CMB", "organization" : "CMB" } }, { "::123.98.192.0/115" : { "isp" : "Cj-hellovision", "organization" : "Cj-hellovision" } }, { "::123.254.64.0/115" : { "isp" : "Cj-hellovision", "organization" : "Cj-hellovision" } }, { "::124.0.34.0/120" : { "isp" : "SK Telecom", "organization" : "SK Telecom" } }, { "::124.0.203.0/120" : { "isp" : "SK Telecom", "organization" : "SK Telecom" } }, { "::124.198.0.0/116" : { "isp" : "HAIonNet", "organization" : "HAIonNet" } }, { "::124.198.112.0/116" : { "isp" : "HAIonNet", "organization" : "HAIonNet" } }, { "::126.0.0.0/104" : { "autonomous_system_number" : 17676, "autonomous_system_organization" : "Softbank BB Corp.", "isp" : "Softbank BB Corp", "organization" : "Softbank BB Corp" } }, { "::129.90.0.0/112" : { "isp" : "Intevep S.A.", "organization" : "Intevep S.A." } }, { "::131.178.0.0/112" : { "isp" : "Instituto Tecnológico y de Estudios Superiores de", "organization" : "Instituto Tecnológico y de Estudios Superiores de" } }, { "::132.0.0.0/106" : { "autonomous_system_number" : 721, "autonomous_system_organization" : "DoD Network Information Center" } }, { "::132.247.0.0/112" : { "isp" : "Universidad Nacional Autonoma de Mexico", "organization" : "Universidad Nacional Autonoma de Mexico" } }, { "::132.248.0.0/112" : { "isp" : "Universidad Nacional Autonoma de Mexico", "organization" : "Universidad Nacional Autonoma de Mexico" } }, { "::132.254.0.0/112" : { "isp" : "Instituto Tecnológico y de Estudios Superiores de", "organization" : "Instituto Tecnológico y de Estudios Superiores de" } }, { "::134.90.248.0/117" : { "organization" : "Geny SRL" } }, { "::139.82.0.0/112" : { "isp" : "Pontificia Universidade Catolica do Rio de Janeiro", "organization" : "Pontificia Universidade Catolica do Rio de Janeiro" } }, { "::140.148.0.0/112" : { "isp" : "Universidad de Las Americas-Puebla", "organization" : "Universidad de Las Americas-Puebla" } }, { "::140.191.0.0/112" : { "isp" : "United Nations Development Programme", "organization" : "United Nations Development Programme" } }, { "::141.208.0.0/112" : { "isp" : "TeliaSonera Finland Oyj", "organization" : "TeliaSonera Finland Oyj" } }, { "::142.217.208.0/118" : { "autonomous_system_number" : 35911 } }, { "::142.217.212.0/119" : { "autonomous_system_number" : 35911 } }, { "::142.217.214.0/120" : { "autonomous_system_number" : 35911, "isp" : "Telebec", "organization" : "LINO Solutions Internet de Télébec" } }, { "::142.217.215.0/120" : { "autonomous_system_number" : 35911 } }, { "::142.217.216.0/117" : { "autonomous_system_number" : 35911 } }, { "::142.217.224.0/117" : { "autonomous_system_number" : 35911 } }, { "::142.217.232.0/118" : { "autonomous_system_number" : 35911 } }, { "::142.217.236.0/119" : { "autonomous_system_number" : 35911 } }, { "::142.217.238.0/120" : { "autonomous_system_number" : 35911 } }, { "::143.54.0.0/112" : { "isp" : "Universidade Federal do Rio Grande do Sul", "organization" : "Universidade Federal do Rio Grande do Sul" } }, { "::143.106.0.0/112" : { "isp" : "Universidade Estadual de Campinas - UNICAMP", "organization" : "Universidade Estadual de Campinas - UNICAMP" } }, { "::143.107.0.0/112" : { "isp" : "Universidade de Sao Paulo", "organization" : "Universidade de Sao Paulo" } }, { "::143.108.0.0/112" : { "isp" : "Fundacao de Amparo a Pesquisa do Estado de Sao Pau", "organization" : "Fundacao de Amparo a Pesquisa do Estado de Sao Pau" } }, { "::144.22.0.0/111" : { "isp" : "Oracle Corporation", "organization" : "Oracle Corporation" } }, { "::145.15.0.0/112" : { "isp" : "Nederlandse Spoorwegen PI block", "organization" : "Nederlandse Spoorwegen PI block" } }, { "::145.128.0.0/106" : { "autonomous_system_number" : 1103, "autonomous_system_organization" : "SURFnet, The Netherlands", "isp" : "SURFnet, The Netherlands", "organization" : "SURFnet, The Netherlands" } }, { "::146.83.0.0/112" : { "isp" : "Red Universitaria Nacional", "organization" : "Red Universitaria Nacional" } }, { "::146.134.0.0/112" : { "isp" : "Laboratorio Nacional de Computacao Cientifica", "organization" : "Laboratorio Nacional de Computacao Cientifica" } }, { "::146.155.0.0/112" : { "isp" : "SECICO", "organization" : "SECICO" } }, { "::146.164.0.0/112" : { "isp" : "Federal University of Rio de Janeiro", "organization" : "Federal University of Rio de Janeiro" } }, { "::146.255.0.0/121" : { "organization" : "Surebroadband Ltd" } }, { "::147.65.0.0/112" : { "isp" : "Instituto de Matematica Pura e Aplicada", "organization" : "Instituto de Matematica Pura e Aplicada" } }, { "::147.194.0.0/112" : { "isp" : "Comwave" } }, { "::148.0.0.0/112" : { "isp" : "Claro Dominican Republic", "organization" : "Claro Dominican Republic" } }, { "::148.101.0.0/112" : { "isp" : "Claro Dominican Republic", "organization" : "Claro Dominican Republic" } }, { "::148.201.0.0/112" : { "isp" : "Iteso, A.c.", "organization" : "Iteso, A.c." } }, { "::148.202.0.0/112" : { "isp" : "Universidad de Guadalajara", "organization" : "Universidad de Guadalajara" } }, { "::148.203.0.0/112" : { "isp" : "Volkswagen de Mexico, S.A. de C.V.", "organization" : "Volkswagen de Mexico, S.A. de C.V." } }, { "::148.204.0.0/112" : { "isp" : "Instituto Politecnico Nacional", "organization" : "Instituto Politecnico Nacional" } }, { "::148.205.0.0/112" : { "isp" : "Instituto Tecnologico Autonomo de Mexico(ITAM)", "organization" : "Instituto Tecnologico Autonomo de Mexico(ITAM)" } }, { "::148.206.0.0/112" : { "isp" : "Universidad Autonoma Metropolitana", "organization" : "Universidad Autonoma Metropolitana" } }, { "::148.207.0.0/120" : { "isp" : "Consejo Nacional de Ciencia y Tenologia (CONACYT)", "organization" : "Consejo Nacional de Ciencia y Tenologia (CONACYT)" } }, { "::148.207.1.0/120" : { "isp" : "Consejo Nacional de Ciencia y Tenologia (CONACYT)", "organization" : "CONACYT" } }, { "::148.207.2.0/119" : { "isp" : "Consejo Nacional de Ciencia y Tenologia (CONACYT)", "organization" : "Consejo Nacional de Ciencia y Tenologia (CONACYT)" } }, { "::148.207.4.0/118" : { "isp" : "Consejo Nacional de Ciencia y Tenologia (CONACYT)", "organization" : "Consejo Nacional de Ciencia y Tenologia (CONACYT)" } }, { "::148.207.8.0/117" : { "isp" : "Consejo Nacional de Ciencia y Tenologia (CONACYT)", "organization" : "Consejo Nacional de Ciencia y Tenologia (CONACYT)" } }, { "::148.207.16.0/116" : { "isp" : "Consejo Nacional de Ciencia y Tenologia (CONACYT)", "organization" : "Consejo Nacional de Ciencia y Tenologia (CONACYT)" } }, { "::148.207.32.0/115" : { "isp" : "Consejo Nacional de Ciencia y Tenologia (CONACYT)", "organization" : "Consejo Nacional de Ciencia y Tenologia (CONACYT)" } }, { "::148.207.64.0/114" : { "isp" : "Consejo Nacional de Ciencia y Tenologia (CONACYT)", "organization" : "Consejo Nacional de Ciencia y Tenologia (CONACYT)" } }, { "::148.207.128.0/113" : { "isp" : "Consejo Nacional de Ciencia y Tenologia (CONACYT)", "organization" : "Consejo Nacional de Ciencia y Tenologia (CONACYT)" } }, { "::148.208.0.0/112" : { "isp" : "Secretaria de Educacion e Investigacion Tecnologic", "organization" : "Secretaria de Educacion e Investigacion Tecnologic" } }, { "::148.209.0.0/112" : { "isp" : "Universidad Autonoma de Yucatan", "organization" : "Universidad Autonoma de Yucatan" } }, { "::148.210.0.0/112" : { "isp" : "Universidad Autonoma De Ciudad Juarez", "organization" : "Universidad Autonoma De Ciudad Juarez" } }, { "::148.211.0.0/112" : { "isp" : "Universidad Autonoma De Aguascalientes", "organization" : "Universidad Autonoma De Aguascalientes" } }, { "::148.212.0.0/112" : { "isp" : "Universidad Autonoma de Coahuila", "organization" : "Universidad Autonoma de Coahuila" } }, { "::148.213.0.0/112" : { "isp" : "Universidad de Colima", "organization" : "Universidad de Colima" } }, { "::148.214.0.0/112" : { "isp" : "Universidad de Guanajuato", "organization" : "Universidad de Guanajuato" } }, { "::148.215.0.0/112" : { "isp" : "Universidad Autonoma del Estado de Mexico", "organization" : "Universidad Autonoma del Estado de Mexico" } }, { "::148.216.0.0/112" : { "isp" : "Universidad Michoacana de San Nicolas de Hidalgo", "organization" : "Universidad Michoacana de San Nicolas de Hidalgo" } }, { "::148.217.0.0/112" : { "isp" : "Universidad Autonoma De Zacatecas", "organization" : "Universidad Autonoma De Zacatecas" } }, { "::148.218.0.0/112" : { "isp" : "Universidad Autonoma Del Estado De Morelos", "organization" : "Universidad Autonoma Del Estado De Morelos" } }, { "::148.219.0.0/112" : { "isp" : "Universidad Autonoma de Tlaxcala", "organization" : "Universidad Autonoma de Tlaxcala" } }, { "::148.220.0.0/112" : { "isp" : "Universidad Autonoma de Queretaro", "organization" : "Universidad Autonoma de Queretaro" } }, { "::148.221.0.0/112" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.222.0.0/112" : { "isp" : "Universidad Autonóma de Chiapas", "organization" : "Universidad Autonóma de Chiapas" } }, { "::148.223.0.0/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Grupo Domos" } }, { "::148.223.0.16/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.0.32/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.0.64/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.0.128/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Informacion Medica de Desarrollo - INFOMED" } }, { "::148.223.0.192/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.1.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Banorte (Clase C)" } }, { "::148.223.2.0/119" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.4.0/118" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.8.0/119" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.10.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.11.0/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.11.16/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Editora de Mar" } }, { "::148.223.11.32/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.11.64/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.11.128/121" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.12.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.13.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Gestión de direccionamiento UniNet" } }, { "::148.223.14.0/119" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.16.0/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "UNL" } }, { "::148.223.16.16/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.16.32/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.16.64/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.16.128/121" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Multimedios Estrella de Oro" } }, { "::148.223.17.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.18.0/119" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.20.0/118" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.24.0/117" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.32.0/115" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.64.0/115" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.96.0/117" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.104.0/119" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.106.0/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.106.32/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.106.48/125" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.106.56/126" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.106.60/127" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.106.62/128" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Inea Parroquia De Nuestro Senor De La Misericordia" } }, { "::148.223.106.63/128" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.106.64/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.106.128/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.106.192/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Kappa Imagenes Digitales" } }, { "::148.223.106.208/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.106.224/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.107.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.108.0/118" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.112.0/116" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.128.0/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.128.64/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Clara Alfaro" } }, { "::148.223.128.80/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "INAOE" } }, { "::148.223.128.96/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.128.128/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.128.160/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Conexiones Worldspan Tuxtla" } }, { "::148.223.128.192/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.129.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "TapNet" } }, { "::148.223.130.0/119" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.132.0/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.132.16/126" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.132.20/126" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Cia Periodistica Del Sol De Puebla" } }, { "::148.223.132.24/125" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.132.32/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.132.64/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.132.128/121" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.133.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.134.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.135.0/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.135.32/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Sergio Perez Bocanegra" } }, { "::148.223.135.48/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.135.64/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.135.96/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "CCYTT" } }, { "::148.223.135.112/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.135.128/121" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.136.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Cliente Tnet (Clase C)" } }, { "::148.223.137.0/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Conexiones Worldspan" } }, { "::148.223.137.32/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.137.64/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.137.128/121" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.138.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.139.0/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Enrique Estrada" } }, { "::148.223.139.32/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Ciber Café La Academia" } }, { "::148.223.139.48/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.139.64/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.139.128/121" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.140.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.141.0/121" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.141.128/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.141.192/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.141.224/125" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.141.232/126" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Centro De Capacitacion En Computacion De San Andre" } }, { "::148.223.141.236/126" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.141.240/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.142.0/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.142.16/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Karlinka" } }, { "::148.223.142.32/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.142.64/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.142.96/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Centro Profesional de Computación del Golfo" } }, { "::148.223.142.112/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.142.128/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.142.144/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Eduardo Guerrero" } }, { "::148.223.142.160/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.142.192/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.143.0/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.143.64/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Univ. Tec.Tabasco" } }, { "::148.223.143.80/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.143.96/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.143.128/121" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.144.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.145.0/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Integri" } }, { "::148.223.145.16/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.145.32/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.145.48/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Coremi" } }, { "::148.223.145.64/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.145.128/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Felipe Batista" } }, { "::148.223.145.144/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Hector Ruben Fdez" } }, { "::148.223.145.160/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.145.192/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.146.0/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.146.64/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Marco Antonio Guevara" } }, { "::148.223.146.80/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.146.96/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.146.128/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.146.192/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Browse Puebla" } }, { "::148.223.146.208/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.146.224/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.147.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.148.0/119" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.150.0/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Conexiones Worldspan" } }, { "::148.223.150.32/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.150.64/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.150.128/121" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.151.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.152.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.153.0/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.153.16/126" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.153.20/126" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Bursametrica Management" } }, { "::148.223.153.24/125" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.153.32/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.153.64/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.153.128/121" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.154.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.155.0/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.155.32/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Mexicana de Importaciones y Exportaciones" } }, { "::148.223.155.48/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.155.64/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.155.80/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Electronica Steren" } }, { "::148.223.155.96/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.155.128/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.155.160/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.155.176/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Agencia Aduanera de America" } }, { "::148.223.155.192/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.156.0/118" : { "isp" : "Uninet S.A. de C.V.", "organization" : "CONECEL" } }, { "::148.223.160.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Centro de Computo Juce" } }, { "::148.223.161.0/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.161.64/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.161.80/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Canacar" } }, { "::148.223.161.96/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.161.128/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.161.192/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Trainingware" } }, { "::148.223.161.208/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.161.224/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Multiservicios Promocionales" } }, { "::148.223.162.0/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Hipotecaria Nacional" } }, { "::148.223.162.16/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Empaques de Carton Uninet" } }, { "::148.223.162.32/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Conexiones Worldspan" } }, { "::148.223.162.64/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "SNTE" } }, { "::148.223.162.80/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.162.96/123" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.162.128/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Agencia de Comunicaion Interactiva" } }, { "::148.223.162.144/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.162.160/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "IFE Tlalpan" } }, { "::148.223.162.176/124" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.162.192/122" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.163.0/120" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.164.0/118" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.168.0/117" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.176.0/116" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.223.192.0/114" : { "isp" : "Uninet S.A. de C.V.", "organization" : "Uninet S.A. de C.V." } }, { "::148.240.0.0/119" : { "isp" : "Axtel Infraestructura-core", "organization" : "Axtel Infraestructura-core" } }, { "::148.243.0.0/112" : { "isp" : "Axtel, S.A.B. de C.V.", "organization" : "Axtel, S.A.B. de C.V." } }, { "::148.245.0.0/120" : { "isp" : "Informacion Al Dia Y Comput SA", "organization" : "Informacion Al Dia Y Comput SA" } }, { "::149.5.110.0/119" : { "organization" : "Fibrestream Limited" } }, { "::149.101.100.0/124" : { "autonomous_system_number" : 6167, "autonomous_system_organization" : "CELLCO-PART", "isp" : "Verizon Wireless", "mobile_country_code" : "310", "mobile_network_code" : "004", "organization" : "Verizon Wireless" } }, { "::154.50.194.0/119" : { "organization" : "Wireless Connect Ltd." } }, { "::168.70.0.0/112" : { "organization" : "HKTNET" } }, { "::169.158.0.0/112" : { "isp" : "Centro Nacional de Intercambio Automatizado", "organization" : "Centro Nacional de Intercambio Automatizado" } }, { "::171.25.212.0/118" : { "organization" : "F-KOM" } }, { "::172.128.0.0/106" : { "autonomous_system_number" : 1668, "autonomous_system_organization" : "AOL Transit Data Network", "isp" : "America Online", "organization" : "America Online" } }, { "::173.227.197.0/120" : { "organization" : "Circle 1 Network" } }, { "::174.36.207.24/128" : { "organization" : "Goversoft" } }, { "::174.127.224.0/115" : { "isp" : "Condointernet.net" } }, { "::174.192.0.0/106" : { "autonomous_system_number" : 6167, "autonomous_system_organization" : "Cellco Partnership DBA Verizon Wireless", "isp" : "Verizon Wireless", "organization" : "Verizon Wireless" } }, { "::176.128.0.0/106" : { "autonomous_system_number" : 12844, "autonomous_system_organization" : "Bouygues Telecom", "isp" : "Bouygues Telecom", "organization" : "Bouygues Telecom" } }, { "::177.0.0.0/110" : { "isp" : "Oi Internet", "organization" : "Oi Internet" } }, { "::177.10.0.0/116" : { "isp" : "Regency Comunicações Ltda", "organization" : "Regency Comunicações Ltda" } }, { "::177.10.24.0/117" : { "isp" : "M.A. Informática Ltda.", "organization" : "M.A. Informática Ltda." } }, { "::177.10.48.0/117" : { "isp" : "Banner Serviços de Telecom e Internet Ltda.", "organization" : "Banner Serviços de Telecom e Internet Ltda." } }, { "::177.10.56.0/117" : { "isp" : "Hoinaski & Sklasky Ltda", "organization" : "Hoinaski & Sklasky Ltda" } }, { "::177.10.64.0/117" : { "isp" : "Silveira & Ziquinatti Ltda", "organization" : "Silveira & Ziquinatti Ltda" } }, { "::177.10.96.0/117" : { "isp" : "Naja Telecomunicações Ltda.", "organization" : "Naja Telecomunicações Ltda." } }, { "::177.10.112.0/118" : { "isp" : "Eletrosul Centrais Elétricas S.A.", "organization" : "Eletrosul Centrais Elétricas S.A." } }, { "::177.10.116.0/118" : { "isp" : "Space Net Serv. De TelecomunicaÇÃo Em Inf. Ltda-me", "organization" : "Space Net Serv. De TelecomunicaÇÃo Em Inf. Ltda-me" } }, { "::177.10.120.0/118" : { "isp" : "JF Soluções Informática Ltda.", "organization" : "JF Soluções Informática Ltda." } }, { "::177.10.124.0/118" : { "isp" : "Info House Informática e Papeis Ltda", "organization" : "Info House Informática e Papeis Ltda" } }, { "::177.10.132.0/118" : { "isp" : "P3 Host Internet Brasil", "organization" : "P3 Host Internet Brasil" } }, { "::177.10.136.0/118" : { "isp" : "Bluephone Solucoes Tecnologicas Ltda", "organization" : "Bluephone Solucoes Tecnologicas Ltda" } }, { "::177.10.144.0/117" : { "isp" : "NETWS Telecomunicações Ltda.", "organization" : "NETWS Telecomunicações Ltda." } }, { "::177.10.160.0/117" : { "isp" : "Chapeco Tecnologia em Telecomunicações Ltda.", "organization" : "Chapeco Tecnologia em Telecomunicações Ltda." } }, { "::177.10.192.0/117" : { "isp" : "Afinet Solucoes Em Tecnologia Da Informacao Ltda", "organization" : "Afinet Solucoes Em Tecnologia Da Informacao Ltda" } }, { "::177.10.208.0/117" : { "isp" : "Mil Negocios Ltda.", "organization" : "Mil Negocios Ltda." } }, { "::177.10.216.0/118" : { "isp" : "Fox Conect Provedor de Internet LTDA", "organization" : "Fox Conect Provedor de Internet LTDA" } }, { "::177.10.224.0/117" : { "isp" : "G30 Telecom ServiÇos Em TelecomunicaÇÕes Ltda", "organization" : "G30 Telecom ServiÇos Em TelecomunicaÇÕes Ltda" } }, { "::177.10.240.0/117" : { "isp" : "Midasnet Telecomunicacoes Ltda", "organization" : "Midasnet Telecomunicacoes Ltda" } }, { "::177.10.248.0/117" : { "isp" : "Viveiros & Araujo Serviços de Provedores da Intern", "organization" : "Viveiros & Araujo Serviços de Provedores da Intern" } }, { "::177.11.16.0/118" : { "isp" : "Rodolfo Romao De Oliveira Neto & Cia Ltda", "organization" : "Rodolfo Romao De Oliveira Neto & Cia Ltda" } }, { "::177.11.24.0/118" : { "isp" : "Ajaxtel Telecomunicações Ltda.", "organization" : "Ajaxtel Telecomunicações Ltda." } }, { "::177.11.32.0/117" : { "isp" : "Mcnet Serviços de Comunicações Ltda", "organization" : "Mcnet Serviços de Comunicações Ltda" } }, { "::177.11.56.0/118" : { "isp" : "R.D.S. Bortoluzzi & Cia Ltda - ME", "organization" : "R.D.S. Bortoluzzi & Cia Ltda - ME" } }, { "::177.11.60.0/118" : { "isp" : "Tolrs Informática Ltda", "organization" : "Tolrs Informática Ltda" } }, { "::177.11.64.0/120" : { "isp" : "Digicontrol ServiÇos De Provedores Ltda", "organization" : "Pablo William Silva Tavares de Lira" } }, { "::177.11.65.0/120" : { "isp" : "Digicontrol ServiÇos De Provedores Ltda", "organization" : "Digicontrol ServiÇos De Provedores Ltda" } }, { "::177.11.66.0/119" : { "isp" : "Digicontrol ServiÇos De Provedores Ltda", "organization" : "Digicontrol ServiÇos De Provedores Ltda" } }, { "::177.11.68.0/118" : { "isp" : "Digicontrol ServiÇos De Provedores Ltda", "organization" : "Digicontrol ServiÇos De Provedores Ltda" } }, { "::177.11.80.0/118" : { "isp" : "PRIMEHOST do BRASIL Ltda", "organization" : "PRIMEHOST do BRASIL Ltda" } }, { "::177.11.84.0/118" : { "isp" : "Minas Turbo Provedor de Internet", "organization" : "Minas Turbo Provedor de Internet" } }, { "::177.11.88.0/118" : { "isp" : "Br2 Internet Ltda", "organization" : "Br2 Internet Ltda" } }, { "::177.11.100.0/118" : { "isp" : "Conexis Internet Provider Ltda - Me", "organization" : "Conexis Internet Provider Ltda - Me" } }, { "::177.11.104.0/118" : { "isp" : "Nolasco & Nonnenmacher Comercio e Rep. Ltda.", "organization" : "Nolasco & Nonnenmacher Comercio e Rep. Ltda." } }, { "::177.11.112.0/117" : { "isp" : "Interneith Via Radio Ltda.", "organization" : "Interneith Via Radio Ltda." } }, { "::177.11.144.0/117" : { "isp" : "Apn - Processamento de Dados e Soluçoes em Interne", "organization" : "Apn - Processamento de Dados e Soluçoes em Interne" } }, { "::177.11.152.0/117" : { "isp" : "Minas Net Ldta Me", "organization" : "Minas Net Ldta Me" } }, { "::177.11.160.0/117" : { "isp" : "Netway Provedor De Internet Ltda", "organization" : "Netway Provedor De Internet Ltda" } }, { "::177.11.176.0/117" : { "isp" : "Catanduva sistemas a cabo ltda.", "organization" : "Catanduva sistemas a cabo ltda." } }, { "::177.11.184.0/117" : { "isp" : "Telecomunicacões Minas Mais Ltda", "organization" : "Telecomunicacões Minas Mais Ltda" } }, { "::177.11.192.0/117" : { "isp" : "Bom Tempo Informática Ltda", "organization" : "Bom Tempo Informática Ltda" } }, { "::177.11.208.0/118" : { "isp" : "Arikinet Internet Ltda - EPP", "organization" : "Arikinet Internet Ltda - EPP" } }, { "::177.11.212.0/118" : { "isp" : "E&L Producoes de Software Ltda", "organization" : "E&L Producoes de Software Ltda" } }, { "::177.11.232.0/117" : { "isp" : "Microfox Informatica Ltda", "organization" : "Microfox Informatica Ltda" } }, { "::177.11.240.0/118" : { "isp" : "Mapfre Vera Cruz Seguradora S/a", "organization" : "Mapfre Vera Cruz Seguradora S/a" } }, { "::177.11.248.0/118" : { "isp" : "Norte Line Telecomunicações Ltda.", "organization" : "Norte Line Telecomunicações Ltda." } }, { "::177.12.0.0/114" : { "isp" : "Predialnet Provedor De Internet Ltda", "organization" : "Predialnet Provedor De Internet Ltda" } }, { "::177.12.128.0/115" : { "isp" : "Pronto Net Ltda.", "organization" : "Pronto Net Ltda." } }, { "::177.12.160.0/117" : { "organization" : "IPV6 Internet Ltda" } }, { "::177.12.176.0/116" : { "isp" : "W r de bel entreterimentos s/s ltda", "organization" : "W r de bel entreterimentos s/s ltda" } }, { "::177.12.192.0/116" : { "isp" : "Alonso Oliveira Neto Me", "organization" : "Alonso Oliveira Neto Me" } }, { "::177.12.208.0/116" : { "isp" : "IP2 Telecomunicação Ltda.", "organization" : "IP2 Telecomunicação Ltda." } }, { "::177.12.240.0/116" : { "isp" : "TURBO 10 Telecomunicações Ltda.", "organization" : "TURBO 10 Telecomunicações Ltda." } }, { "::177.100.0.0/112" : { "isp" : "Vcb Provedor De Acesso Ltda", "organization" : "Vcb Provedor De Acesso Ltda" } }, { "::177.101.0.0/116" : { "isp" : "Click.com telecomunicações ltda-me", "organization" : "Click.com telecomunicações ltda-me" } }, { "::177.101.16.0/116" : { "isp" : "Universidade Estadual De Ponta Grossa", "organization" : "Universidade Estadual De Ponta Grossa" } }, { "::177.101.32.0/117" : { "isp" : "Unica Tecnology Ltda", "organization" : "Unica Tecnology Ltda" } }, { "::177.101.40.0/118" : { "isp" : "Unica Tecnology Ltda", "organization" : "Unica Tecnology Ltda" } }, { "::177.101.44.0/118" : { "isp" : "Unica Tecnology Ltda", "organization" : "Microtell Informatica - Comercio & Prestacao De S" } }, { "::177.101.80.0/116" : { "isp" : "Intercol - Internet Colatina Ltda-ME", "organization" : "Intercol - Internet Colatina Ltda-ME" } }, { "::177.101.96.0/115" : { "isp" : "T.p.a. InformÁtica Ltda", "organization" : "T.p.a. InformÁtica Ltda" } }, { "::177.101.128.0/116" : { "isp" : "Ampernet Telecomunicações Ltda", "organization" : "Ampernet Telecomunicações Ltda" } }, { "::177.101.176.0/116" : { "isp" : "Mar Provedor de Internet Ltda", "organization" : "Mar Provedor de Internet Ltda" } }, { "::177.101.192.0/114" : { "isp" : "Sul Americana Tecnologia e Informática Ltda.", "organization" : "Sul Americana Tecnologia e Informática Ltda." } }, { "::177.102.0.0/111" : { "isp" : "Vivo", "organization" : "Vivo" } }, { "::177.104.0.0/116" : { "isp" : "Jgm Brasil TelecomunicaÇÕes Ltda", "organization" : "Jgm Brasil TelecomunicaÇÕes Ltda" } }, { "::177.104.16.0/116" : { "isp" : "Inetsafe Comercio De Equipamentos Eletronicos Ltda", "organization" : "Inetsafe Comercio De Equipamentos Eletronicos Ltda" } }, { "::177.104.64.0/115" : { "isp" : "Infoline - Comunicações e Informações Eletrônicas", "organization" : "Infoline - Comunicações e Informações Eletrônicas" } }, { "::177.104.192.0/116" : { "isp" : "J W Mateus Informatica - Me", "organization" : "J W Mateus Informatica - Me" } }, { "::177.104.208.0/116" : { "isp" : "Brasconect Informatica LTDA", "organization" : "Brasconect Informatica LTDA" } }, { "::177.104.224.0/116" : { "isp" : "Tech Cable do Brasil Sist. de Telec. Ltda", "organization" : "Tech Cable do Brasil Sist. de Telec. Ltda" } }, { "::177.105.0.0/114" : { "isp" : "Ufla - Universidade Federal De Lavras", "organization" : "Ufla - Universidade Federal De Lavras" } }, { "::177.105.64.0/116" : { "isp" : "Netprimus Tecnologia Ltda", "organization" : "Netprimus Tecnologia Ltda" } }, { "::177.105.112.0/116" : { "isp" : "Evanildo Barbeta Boituva ME", "organization" : "Evanildo Barbeta Boituva ME" } }, { "::177.105.160.0/116" : { "isp" : "LB Redes Telecomunicações LTDA", "organization" : "LB Redes Telecomunicações LTDA" } }, { "::177.105.176.0/116" : { "isp" : "Sidys Comunicações Ltda.", "organization" : "Sidys Comunicações Ltda." } }, { "::177.105.208.0/116" : { "isp" : "Portalmail Informatica Ltda", "organization" : "Portalmail Informatica Ltda" } }, { "::177.105.224.0/116" : { "isp" : "Internet Pinheirense Ltda - ME", "organization" : "Internet Pinheirense Ltda - ME" } }, { "::177.106.0.0/112" : { "isp" : "CTBC", "organization" : "CTBC" } }, { "::177.107.0.0/116" : { "isp" : "Byteweb Comunicação Multimídia Ltda.", "organization" : "Byteweb Comunicação Multimídia Ltda." } }, { "::177.107.64.0/116" : { "isp" : "Redenilf Serviços de Telecomunicações Ltda", "organization" : "Redenilf Serviços de Telecomunicações Ltda" } }, { "::177.107.96.0/116" : { "isp" : "Star Conect Telecom Ltda", "organization" : "Star Conect Telecom Ltda" } }, { "::177.107.112.0/116" : { "isp" : "OpçãoNet Informática Ltda ME", "organization" : "OpçãoNet Informática Ltda ME" } }, { "::177.107.128.0/115" : { "isp" : "Link Sol LTDA - ME", "organization" : "Link Sol LTDA - ME" } }, { "::177.107.178.0/122" : { "isp" : "New Master Provedor De Acesso A Internet", "organization" : "New Master Provedor De Acesso A Internet" } }, { "::177.107.190.0/121" : { "isp" : "New Master Provedor De Acesso A Internet", "organization" : "New Master Provedor De Acesso A Internet" } }, { "::177.107.224.0/115" : { "isp" : "Gigalink de Nova Friburgo Soluções em Rede Multimi", "organization" : "Gigalink de Nova Friburgo Soluções em Rede Multimi" } }, { "::177.108.0.0/110" : { "isp" : "Tim Celular S.A.", "organization" : "Tim Celular S.A." } }, { "::177.112.0.0/109" : { "isp" : "Vivo", "organization" : "Vivo" } }, { "::177.120.0.0/111" : { "isp" : "Tim Celular S.A.", "organization" : "Tim Celular S.A." } }, { "::180.0.0.0/106" : { "autonomous_system_number" : 4713, "autonomous_system_organization" : "NTT Communications Corporation", "isp" : "NTT", "organization" : "NTT" } }, { "::180.131.208.0/116" : { "isp" : "GLBB" } }, { "::180.131.224.0/115" : { "isp" : "GLBB" } }, { "::182.54.235.0/120" : { "organization" : "GPLHost" } }, { "::183.0.0.0/106" : { "autonomous_system_number" : 4134, "autonomous_system_organization" : "Chinanet", "isp" : "China Telecom", "organization" : "China Telecom" } }, { "::183.192.0.0/106" : { "autonomous_system_number" : 9808, "autonomous_system_organization" : "Guangdong Mobile Communication Co.Ltd.", "isp" : "Guangdong Mobile", "organization" : "Guangdong Mobile" } }, { "::184.71.70.142/128" : { "organization" : "Trans Canada Internet" } }, { "::184.170.240.0/119" : { "organization" : "QuickWeb Hosting Solutions" } }, { "::185.5.42.0/119" : { "isp" : "SmartLabs LLC" } }, { "::186.249.64.0/116" : { "organization" : "WE Radio Comunicação LTDA EPP" } }, { "::187.95.224.0/115" : { "organization" : "Voax Provedor de Internet" } }, { "::187.109.192.0/120" : { "organization" : "RedeTeleSul" } }, { "::188.35.4.0/118" : { "isp" : "CityLink ISP", "organization" : "CityLink Ltd" } }, { "::188.35.144.0/119" : { "organization" : "CityLink Ltd" } }, { "::188.35.149.0/120" : { "organization" : "indtelecom" } }, { "::188.138.21.170/128" : { "organization" : "MitiHost Solutions" } }, { "::190.110.5.0/120" : { "organization" : "FiberXpress Dominicana" } }, { "::190.113.240.0/118" : { "isp" : "FIX WIRELESS" } }, { "::192.102.6.0/119" : { "organization" : "HostVDS-NET" } }, { "::192.114.160.0/115" : { "isp" : "Golden Lines Cable", "organization" : "Golden Lines Cable" } }, { "::192.175.40.0/118" : { "organization" : "Fibrestream Limited" } }, { "::193.41.172.0/118" : { "organization" : "P.P.H.U Multicom" } }, { "::193.43.210.0/119" : { "organization" : "FOP Molochko Nina Vasilevna" } }, { "::193.43.246.250/128" : { "organization" : "Amdocs" } }, { "::193.67.0.0/112" : { "isp" : "Verizon Nederland B.V.", "organization" : "Verizon Nederland B.V." } }, { "::193.95.0.0/113" : { "isp" : "Agence Tunisienne Internet - ATI", "organization" : "Agence Tunisienne Internet - ATI" } }, { "::193.106.152.0/118" : { "organization" : "X-Com Partners" } }, { "::193.108.56.0/118" : { "isp" : "SLW Internet Service Ltd.", "organization" : "SLW Internet Service Ltd." } }, { "::193.130.58.96/124" : { "isp" : "Buckhaven High school", "organization" : "Buckhaven High school" } }, { "::193.170.79.0/120" : { "isp" : "University of Technology, Vienna", "organization" : "University of Technology, Vienna" } }, { "::193.183.144.0/120" : { "organization" : "H & M Hennes & Mauritz AB" } }, { "::193.227.0.0/114" : { "isp" : "Egyptian Universities Network", "organization" : "Egyptian Universities Network" } }, { "::193.235.18.0/119" : { "isp" : "AB Svenska Spel", "organization" : "AB Svenska Spel" } }, { "::193.235.20.0/119" : { "isp" : "AB Svenska Spel", "organization" : "AB Svenska Spel" } }, { "::194.8.240.0/119" : { "organization" : "CDcorp" } }, { "::194.28.112.0/118" : { "isp" : "Specialist Ltd." } }, { "::194.30.180.0/120" : { "organization" : "w3 GmbH" } }, { "::194.50.128.0/118" : { "isp" : "CityLink ISP" } }, { "::194.82.232.0/118" : { "isp" : "Forestry Commision", "organization" : "Forestry Commision" } }, { "::194.84.23.0/121" : { "isp" : "WEB Hotel, Moscow", "organization" : "WEB Hotel, Moscow" } }, { "::194.105.206.0/120" : { "isp" : "Hotel Astoria network", "organization" : "Hotel Astoria network" } }, { "::194.117.119.228/126" : { "isp" : "Seaside Hotels, S.A.", "organization" : "Seaside Hotels, S.A." } }, { "::194.126.180.112/124" : { "organization" : "Small Private Enterprise Kvant-II" } }, { "::194.140.181.0/120" : { "organization" : "WICO" } }, { "::194.140.228.0/120" : { "organization" : "Sevonline" } }, { "::194.149.160.0/115" : { "isp" : "Free SAS", "organization" : "Free SAS" } }, { "::194.165.152.248/125" : { "isp" : "Rawdat Al-Ma'aref Schools & College", "organization" : "Rawdat Al-Ma'aref Schools & College" } }, { "::194.178.0.0/112" : { "isp" : "Verizon Nederland B.V.", "organization" : "Verizon Nederland B.V." } }, { "::194.242.234.0/119" : { "isp" : "CASPUR", "organization" : "CASPUR" } }, { "::194.242.236.0/118" : { "isp" : "CASPUR", "organization" : "CASPUR" } }, { "::194.242.240.0/119" : { "isp" : "CASPUR", "organization" : "CASPUR" } }, { "::195.22.192.0/115" : { "isp" : "TELECOM ITALIA SPARKLE S.p.A.", "organization" : "TELECOM ITALIA SPARKLE S.p.A." } }, { "::195.32.0.0/113" : { "isp" : "Officine Informatiche Srl", "organization" : "Officine Informatiche Srl" } }, { "::195.43.0.0/115" : { "isp" : "Egyptian National Scientific & Technical Informati", "organization" : "Egyptian National Scientific & Technical Informati" } }, { "::195.130.224.0/115" : { "isp" : "Tiscali SpA", "organization" : "Tiscali SpA" } }, { "::195.134.192.0/115" : { "isp" : "Interoute Communications Limited", "organization" : "Interoute Communications Limited" } }, { "::195.137.0.0/113" : { "isp" : "Tiscali UK Limited", "organization" : "Tiscali UK Limited" } }, { "::195.194.74.224/123" : { "isp" : "Blackpool Sixth Form College", "organization" : "Blackpool Sixth Form College" } }, { "::195.194.136.0/118" : { "isp" : "Aberdeen College", "organization" : "Aberdeen College" } }, { "::195.206.64.0/115" : { "isp" : "BT", "organization" : "BT" } }, { "::195.242.32.0/115" : { "isp" : "Verizon Sweden AB", "organization" : "Verizon Sweden AB" } }, { "::195.246.32.0/115" : { "isp" : "Egyptian Universities Network (EUN)", "organization" : "Egyptian Universities Network (EUN)" } }, { "::196.1.56.0/117" : { "isp" : "Frogfoot Networks", "organization" : "Frogfoot Networks" } }, { "::196.1.144.0/116" : { "isp" : "CMC Networks", "organization" : "CMC Networks" } }, { "::196.3.164.0/118" : { "isp" : "Global Internet Access", "organization" : "Global Internet Access" } }, { "::196.3.168.0/117" : { "isp" : "Global Internet Access", "organization" : "Global Internet Access" } }, { "::196.3.176.0/118" : { "isp" : "Global Internet Access", "organization" : "Global Internet Access" } }, { "::196.4.173.0/120" : { "isp" : "Gkn Chep SA", "organization" : "Gkn Chep SA" } }, { "::196.4.174.0/119" : { "isp" : "Gkn Chep SA", "organization" : "Gkn Chep SA" } }, { "::196.4.176.0/117" : { "isp" : "Gkn Chep SA", "organization" : "Gkn Chep SA" } }, { "::196.4.184.0/118" : { "isp" : "Gkn Chep SA", "organization" : "Gkn Chep SA" } }, { "::196.4.188.0/120" : { "isp" : "Gkn Chep SA", "organization" : "Gkn Chep SA" } }, { "::196.12.128.0/116" : { "isp" : "Rwandatel, SA", "organization" : "Rwandatel, SA" } }, { "::196.12.144.0/118" : { "isp" : "Rwandatel, SA", "organization" : "Wireless Broadband Customer" } }, { "::196.12.148.0/118" : { "isp" : "Rwandatel, SA", "organization" : "Rwandatel, SA" } }, { "::196.12.152.0/117" : { "isp" : "Rwandatel, SA", "organization" : "Rwandatel, SA" } }, { "::196.12.192.0/114" : { "isp" : "Wana Corporate", "organization" : "Wana Corporate" } }, { "::196.22.160.0/115" : { "isp" : "MWEB", "organization" : "MWEB" } }, { "::196.22.192.0/116" : { "isp" : "Data Pro Business Online", "organization" : "Data Pro Business Online" } }, { "::196.22.208.0/118" : { "isp" : "Data Pro Business Online", "organization" : "JHB Waverley MetroEthernet, Hosting and Lease Line" } }, { "::196.22.212.0/118" : { "isp" : "Data Pro Business Online", "organization" : "Data Pro Business Online" } }, { "::196.22.216.0/117" : { "isp" : "Data Pro Business Online", "organization" : "Data Pro Business Online" } }, { "::196.22.236.0/118" : { "isp" : "Durban Lease Line and Hosting Zone Range", "organization" : "Durban Lease Line and Hosting Zone Range" } }, { "::196.27.96.0/115" : { "isp" : "Zimbabwe Online", "organization" : "Zimbabwe Online" } }, { "::196.28.249.0/120" : { "isp" : "ONATEL", "organization" : "ONATEL" } }, { "::196.28.250.0/119" : { "isp" : "ONATEL", "organization" : "ONATEL" } }, { "::196.28.252.0/120" : { "isp" : "ONATEL", "organization" : "ONATEL" } }, { "::196.29.187.0/124" : { "isp" : "Al Salam Rotana Hotel- sudan", "organization" : "Al Salam Rotana Hotel- sudan" } }, { "::196.32.112.0/116" : { "isp" : "Universite de Bamako", "organization" : "Universite de Bamako" } }, { "::196.32.232.0/117" : { "isp" : "Amobia Communications", "organization" : "Amobia Communications" } }, { "::196.41.224.0/115" : { "isp" : "Sarl ICOSNET", "organization" : "Sarl ICOSNET" } }, { "::196.43.64.0/116" : { "isp" : "Allocated to Broad band internet in the following", "organization" : "Allocated to Broad band internet in the following" } }, { "::196.43.80.0/117" : { "isp" : "Allocated to Broad band internet in the following", "organization" : "Allocated to Broad band internet in the following" } }, { "::196.43.128.0/114" : { "isp" : "Research and Education Network of Uganda - RENU", "organization" : "Research and Education Network of Uganda - RENU" } }, { "::196.43.194.0/120" : { "isp" : "Association of African Universities", "organization" : "Association of African Universities" } }, { "::196.43.199.0/120" : { "isp" : "Zimbabwe Open University", "organization" : "Zimbabwe Open University" } }, { "::196.43.224.0/120" : { "isp" : "Nigeria Air Force", "organization" : "Nigeria Air Force" } }, { "::196.43.235.0/120" : { "isp" : "Bowen University", "organization" : "Bowen University" } }, { "::196.44.160.0/116" : { "isp" : "University of Dar es Salaam", "organization" : "University of Dar es Salaam" } }, { "::196.44.176.0/116" : { "isp" : "Yo! Africa", "organization" : "Yo! Africa" } }, { "::196.44.240.0/116" : { "isp" : "MTN RwandaCell", "organization" : "MTN RwandaCell" } }, { "::196.200.19.206/128" : { "isp" : "The Institute for Social Accou", "organization" : "The Institute for Social Accou" } }, { "::196.200.20.40/125" : { "isp" : "Tribe Hotel", "organization" : "Tribe Hotel" } }, { "::196.200.28.0/118" : { "isp" : "Accesskenya Group Ltd", "organization" : "Accesskenya Group Ltd" } }, { "::196.200.32.0/116" : { "isp" : "Wananchi Online", "organization" : "Wananchi Online" } }, { "::196.200.63.0/120" : { "isp" : "Afribone - Universite", "organization" : "Afribone - Universite" } }, { "::196.200.80.0/116" : { "isp" : "Ikatel SA", "organization" : "Ikatel SA" } }, { "::196.202.208.0/118" : { "isp" : "Orange Broadband Kenya", "organization" : "Orange Broadband Kenya" } }, { "::196.202.240.0/118" : { "isp" : "Telecom Lesotho (PTY) LTD", "organization" : "Telecom Lesotho (PTY) LTD" } }, { "::196.202.244.0/120" : { "isp" : "Telecom Lesotho (PTY) LTD", "organization" : "Telecom Lesotho (PTY) LTD" } }, { "::196.202.245.0/125" : { "isp" : "Telecom Lesotho (PTY) LTD", "organization" : "Sub allocation to Lerotholi Polytechnic Institute" } }, { "::196.202.245.8/125" : { "isp" : "Telecom Lesotho (PTY) LTD", "organization" : "Telecom Lesotho (PTY) LTD" } }, { "::196.202.245.16/124" : { "isp" : "Telecom Lesotho (PTY) LTD", "organization" : "Telecom Lesotho (PTY) LTD" } }, { "::196.202.245.32/123" : { "isp" : "Telecom Lesotho (PTY) LTD", "organization" : "Telecom Lesotho (PTY) LTD" } }, { "::196.202.245.64/122" : { "isp" : "Telecom Lesotho (PTY) LTD", "organization" : "Telecom Lesotho (PTY) LTD" } }, { "::196.202.245.128/121" : { "isp" : "Telecom Lesotho (PTY) LTD", "organization" : "Telecom Lesotho (PTY) LTD" } }, { "::196.202.246.0/119" : { "isp" : "Telecom Lesotho (PTY) LTD", "organization" : "Telecom Lesotho (PTY) LTD" } }, { "::196.206.0.0/113" : { "isp" : "Maroc Telecom", "organization" : "Maroc Telecom" } }, { "::196.206.128.0/114" : { "isp" : "Maroc Telecom", "organization" : "Maroc Telecom" } }, { "::196.206.192.0/115" : { "isp" : "Maroc Telecom", "organization" : "Maroc Telecom" } }, { "::196.206.224.0/117" : { "isp" : "Maroc Telecom", "organization" : "Maroc Telecom" } }, { "::196.206.232.0/117" : { "isp" : "Maroc Telecom", "organization" : "MarocTelecom" } }, { "::196.206.240.0/116" : { "isp" : "Maroc Telecom", "organization" : "Maroc Telecom" } }, { "::196.207.16.0/116" : { "isp" : "Communication Solutions Ltd.", "organization" : "Communication Solutions Ltd." } }, { "::196.208.16.0/116" : { "isp" : "Internet Solutions", "organization" : "Internet Solutions" } }, { "::196.208.224.0/116" : { "isp" : "Internet Solutions", "organization" : "Internet Solutions" } }, { "::196.216.48.0/118" : { "isp" : "Network assigned to Silver Customers in Luanda, An", "organization" : "Network assigned to Silver Customers in Luanda, An" } }, { "::196.216.64.0/119" : { "isp" : "Swift Global Kenya Limited", "organization" : "Swift Global Kenya Limited" } }, { "::196.216.66.0/120" : { "isp" : "Swift Global Kenya Limited", "organization" : "Swift Global Kenya Limited" } }, { "::196.216.67.0/121" : { "isp" : "Swift Global Kenya Limited", "organization" : "Swift Global Kenya Limited" } }, { "::196.216.67.128/122" : { "isp" : "Swift Global Kenya Limited", "organization" : "Swift Global Kenya Limited" } }, { "::196.216.67.192/126" : { "isp" : "Swift Global Kenya Limited", "organization" : "Swift Global Kenya Limited" } }, { "::196.216.67.196/126" : { "isp" : "Swift Global Kenya Limited", "organization" : "PushMobileMediaSGK" } }, { "::196.216.67.200/125" : { "isp" : "Swift Global Kenya Limited", "organization" : "Swift Global Kenya Limited" } }, { "::196.216.67.208/124" : { "isp" : "Swift Global Kenya Limited", "organization" : "Swift Global Kenya Limited" } }, { "::196.216.67.224/123" : { "isp" : "Swift Global Kenya Limited", "organization" : "Swift Global Kenya Limited" } }, { "::196.216.68.0/118" : { "isp" : "Swift Global Kenya Limited", "organization" : "Swift Global Kenya Limited" } }, { "::196.216.72.0/117" : { "isp" : "Swift Global Kenya Limited", "organization" : "Swift Global Kenya Limited" } }, { "::196.216.80.0/116" : { "isp" : "Swift Global Kenya Limited", "organization" : "Swift Global Kenya Limited" } }, { "::196.216.172.0/118" : { "isp" : "Grindrod Management Services (Pty) Ltd", "organization" : "Grindrod Management Services (Pty) Ltd" } }, { "::196.216.180.0/118" : { "isp" : "Zenith Bank Ghana Ltd", "organization" : "Zenith Bank Ghana Ltd" } }, { "::196.216.184.0/118" : { "isp" : "Finbank PLC", "organization" : "Finbank PLC" } }, { "::196.216.200.0/118" : { "isp" : "Central Bank of Nigeria", "organization" : "Central Bank of Nigeria" } }, { "::196.216.204.0/118" : { "isp" : "Seacom Ltd", "organization" : "Seacom Ltd" } }, { "::196.216.240.0/119" : { "isp" : "Cairo American College", "organization" : "Cairo American College" } }, { "::196.217.0.0/113" : { "isp" : "Maroc Telecom", "organization" : "Maroc Telecom" } }, { "::196.217.192.0/115" : { "isp" : "Maroc Telecom", "organization" : "Maroc Telecom" } }, { "::196.217.224.0/116" : { "isp" : "Maroc Telecom", "organization" : "Maroc Telecom" } }, { "::196.220.96.0/115" : { "isp" : "National University of Science and Technology", "organization" : "National University of Science and Technology" } }, { "::196.220.208.0/116" : { "isp" : "Beehive Social Enterprise", "organization" : "Beehive Social Enterprise" } }, { "::196.220.224.0/116" : { "isp" : "University of Jos Nigeria", "organization" : "University of Jos Nigeria" } }, { "::196.220.240.0/116" : { "isp" : "University of Lagos", "organization" : "University of Lagos" } }, { "::196.221.20.0/118" : { "isp" : "RT-ADSL-project", "organization" : "RT-ADSL-project" } }, { "::196.221.24.0/117" : { "isp" : "RT-ADSL-project", "organization" : "RT-ADSL-project" } }, { "::196.244.0.0/112" : { "isp" : "Fiber Grid Inc", "organization" : "Fiber Grid Inc" } }, { "::196.252.0.0/111" : { "isp" : "North West University", "organization" : "North West University" } }, { "::196.254.0.0/111" : { "isp" : "University of the Free State", "organization" : "University of the Free State" } }, { "::198.41.28.0/118" : { "isp" : "Granite Networks" } }, { "::198.161.136.0/117" : { "isp" : "SilverIP Communications" } }, { "::198.178.28.0/118" : { "isp" : "Allo Communications LLC" } }, { "::199.120.69.0/120" : { "organization" : "Premier Communications" } }, { "::199.192.166.0/119" : { "organization" : "SUMO FIBER" } }, { "::199.193.222.128/121" : { "organization" : "Alamo Broadband" } }, { "::200.110.139.0/120" : { "organization" : "Argentina Virtual Networks S.R.L." } }, { "::200.110.145.0/123" : { "organization" : "Argentina Virtual Networks S.R.L." } }, { "::202.3.80.0/116" : { "organization" : "DIGINET-NZ" } }, { "::202.93.153.0/120" : { "organization" : "LATELZ Co., Ltd." } }, { "::203.118.242.0/120" : { "organization" : "LATELZ Co., Ltd." } }, { "::203.148.64.0/116" : { "organization" : "LGCNS China" } }, { "::204.128.241.208/128" : { "isp" : "YourHomeISP" } }, { "::206.16.137.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::206.16.139.0/120" : { "isp" : "AT&T Synaptic Cloud Hosting", "organization" : "AT&T Synaptic Cloud Hosting" } }, { "::207.34.130.0/120" : { "organization" : "Lytton Area Wireless Society" } }, { "::207.241.128.0/116" : { "isp" : "CMS Internet LLC" } }, { "::208.20.196.16/125" : { "organization" : "Hilite International" } }, { "::208.35.54.80/124" : { "organization" : "Hilite International" } }, { "::208.110.194.0/119" : { "autonomous_system_number" : 11025 } }, { "::208.110.196.0/118" : { "autonomous_system_number" : 11025 } }, { "::208.110.200.0/117" : { "autonomous_system_number" : 11025 } }, { "::208.110.208.0/117" : { "autonomous_system_number" : 11025 } }, { "::208.110.216.0/120" : { "autonomous_system_number" : 11025 } }, { "::208.110.217.0/122" : { "autonomous_system_number" : 11025 } }, { "::208.110.217.64/123" : { "autonomous_system_number" : 11025 } }, { "::208.110.217.96/125" : { "autonomous_system_number" : 11025 } }, { "::208.110.217.104/127" : { "autonomous_system_number" : 11025 } }, { "::208.110.217.106/128" : { "autonomous_system_number" : 11025 } }, { "::208.110.217.107/128" : { "autonomous_system_number" : 11025, "isp" : "Comcast - Houston", "organization" : "Comcast - Houston" } }, { "::208.110.217.108/126" : { "autonomous_system_number" : 11025, "isp" : "Comcast - Houston", "organization" : "Comcast - Houston" } }, { "::208.110.217.112/127" : { "autonomous_system_number" : 11025, "isp" : "Comcast - Houston", "organization" : "Comcast - Houston" } }, { "::208.110.217.114/127" : { "autonomous_system_number" : 11025 } }, { "::208.110.217.116/126" : { "autonomous_system_number" : 11025 } }, { "::208.110.217.120/125" : { "autonomous_system_number" : 11025 } }, { "::208.110.217.128/121" : { "autonomous_system_number" : 11025 } }, { "::208.110.218.0/119" : { "autonomous_system_number" : 11025 } }, { "::208.110.220.0/118" : { "autonomous_system_number" : 11025 } }, { "::208.178.194.148/126" : { "organization" : "Beyond Next" } }, { "::208.192.0.0/106" : { "autonomous_system_number" : 701, "autonomous_system_organization" : "MCI Communications Services, Inc. d/b/a Verizon Business", "isp" : "Verizon Business", "organization" : "Verizon Business" } }, { "::209.66.114.182/128" : { "organization" : "International Business Times" } }, { "::209.222.88.24/125" : { "organization" : "MitiHost Solutions" } }, { "::212.1.224.0/115" : { "isp" : "Net By Net Holding LLC", "organization" : "Net By Net Holding LLC" } }, { "::212.5.224.0/115" : { "isp" : "Nonprofit Partnership for the Development of Finan", "organization" : "Nonprofit Partnership for the Development of Finan" } }, { "::212.10.176.0/116" : { "isp" : "Telia Stofa A/S", "organization" : "Telia Stofa A/S" } }, { "::212.11.128.0/115" : { "isp" : "Moscow Mayor's Office", "organization" : "Moscow Mayor's Office" } }, { "::212.11.160.0/115" : { "isp" : "SPSNET", "organization" : "SPSNET" } }, { "::212.23.224.0/115" : { "isp" : "COLT Technology Services Group Limited", "organization" : "COLT Technology Services Group Limited" } }, { "::212.50.183.0/120" : { "organization" : "Fibrestream Limited" } }, { "::212.55.234.0/119" : { "isp" : "Slovanet a.s.", "organization" : "Slovanet a.s." } }, { "::212.55.236.0/120" : { "isp" : "Slovanet a.s.", "organization" : "Slovanet a.s." } }, { "::212.73.150.0/120" : { "organization" : "Linkplus" } }, { "::212.75.32.0/115" : { "isp" : "Scan Plus GmbH", "organization" : "Scan Plus GmbH" } }, { "::212.102.192.0/115" : { "isp" : "ICM NetServ Ltd", "organization" : "ICM NetServ Ltd" } }, { "::212.121.224.0/115" : { "isp" : "Altecom" } }, { "::212.132.153.192/124" : { "isp" : "St Andrew's Primary School", "organization" : "St Andrew's Primary School" } }, { "::212.137.30.248/125" : { "isp" : "Ufi Army Torch Hub Nuneaton", "organization" : "Ufi Army Torch Hub Nuneaton" } }, { "::212.173.48.112/124" : { "isp" : "Glenfall County Primary School", "organization" : "Glenfall County Primary School" } }, { "::212.173.250.56/125" : { "isp" : "Ashleworth CE Primary School", "organization" : "Ashleworth CE Primary School" } }, { "::212.200.145.192/124" : { "organization" : "SokoWireless.NET!" } }, { "::212.201.51.0/120" : { "isp" : "Saechsische Landesbibliothek -", "organization" : "Saechsische Landesbibliothek -" } }, { "::212.201.52.0/118" : { "isp" : "Saechsische Landesbibliothek -", "organization" : "Saechsische Landesbibliothek -" } }, { "::212.201.56.0/117" : { "isp" : "Saechsische Landesbibliothek -", "organization" : "Saechsische Landesbibliothek -" } }, { "::213.18.209.72/125" : { "isp" : "Dinglewell Infant School", "organization" : "Dinglewell Infant School" } }, { "::213.21.192.0/114" : { "isp" : "VERSIA Ltd", "organization" : "VERSIA Ltd" } }, { "::213.54.0.0/112" : { "isp" : "nacamar GmbH", "organization" : "nacamar GmbH" } }, { "::213.148.199.0/120" : { "isp" : "Altecom" } }, { "::213.148.200.0/117" : { "isp" : "Altecom" } }, { "::213.148.208.0/117" : { "isp" : "Altecom" } }, { "::213.148.216.0/118" : { "isp" : "Altecom" } }, { "::213.148.220.0/120" : { "isp" : "Altecom" } }, { "::213.157.184.0/120" : { "isp" : "RCS & RDS Mobile" } }, { "::213.159.160.0/115" : { "isp" : "Telefonaktiebolaget L M Ericsson", "organization" : "Telefonaktiebolaget L M Ericsson" } }, { "::213.171.52.172/126" : { "isp" : "Network for OAO Megdunarodnyi airport Domodedovo", "organization" : "Network for OAO Megdunarodnyi airport Domodedovo" } }, { "::213.203.120.0/118" : { "isp" : "Jet Multimedia", "organization" : "Jet Multimedia" } }, { "::213.233.96.0/119" : { "isp" : "MobiFon S.A.", "organization" : "MobiFon S.A." } }, { "::213.249.135.0/123" : { "isp" : "York County Council LAN", "organization" : "York County Council LAN" } }, { "::213.254.64.0/114" : { "isp" : "ONO", "organization" : "ONO" } }, { "::214.0.0.0/104" : { "autonomous_system_number" : 721, "autonomous_system_organization" : "DoD Network Information Center" } }, { "::215.0.0.0/105" : { "autonomous_system_number" : 721, "autonomous_system_organization" : "DoD Network Information Center" } }, { "::216.83.161.0/120" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "::216.83.162.0/119" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "::216.83.164.0/118" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "::216.83.168.0/119" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "::216.83.170.0/120" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "::216.83.171.0/121" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "::216.83.171.128/122" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "::216.83.171.192/123" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA", "isp" : "Sungard Network Solutions", "organization" : "Sungard Network Solutions" } }, { "::216.83.171.224/123" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "::216.83.172.0/118" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "::216.83.176.0/116" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "::216.154.16.197/128" : { "organization" : "Silonet.ca - Your Rural Internet Service Provider" } }, { "::216.160.26.0/119" : { "autonomous_system_number" : 209 } }, { "::216.160.28.0/118" : { "autonomous_system_number" : 209 } }, { "::216.160.32.0/115" : { "autonomous_system_number" : 209 } }, { "::216.160.64.0/116" : { "autonomous_system_number" : 209 } }, { "::216.160.80.0/119" : { "autonomous_system_number" : 209 } }, { "::216.160.82.0/120" : { "autonomous_system_number" : 209 } }, { "::216.160.83.0/123" : { "autonomous_system_number" : 209 } }, { "::216.160.83.32/124" : { "autonomous_system_number" : 209 } }, { "::216.160.83.48/125" : { "autonomous_system_number" : 209 } }, { "::216.160.83.56/125" : { "autonomous_system_number" : 209, "isp" : "Century Link", "organization" : "Lariat Software" } }, { "::216.160.83.64/122" : { "autonomous_system_number" : 209 } }, { "::216.160.83.128/121" : { "autonomous_system_number" : 209 } }, { "::216.160.84.0/118" : { "autonomous_system_number" : 209 } }, { "::216.160.88.0/117" : { "autonomous_system_number" : 209 } }, { "::216.160.96.0/115" : { "autonomous_system_number" : 209 } }, { "::216.160.128.0/114" : { "autonomous_system_number" : 209 } }, { "::216.160.192.0/117" : { "autonomous_system_number" : 209 } }, { "::216.160.200.0/118" : { "autonomous_system_number" : 209 } }, { "::216.160.204.0/119" : { "autonomous_system_number" : 209 } }, { "::216.160.206.0/120" : { "autonomous_system_number" : 209 } }, { "::217.12.96.0/116" : { "isp" : "Alfa-Bank Moscow Russia", "organization" : "Alfa-Bank Moscow Russia" } }, { "::217.17.192.0/116" : { "isp" : "IKS Service GmbH" } }, { "::217.28.128.0/116" : { "isp" : "Cobweb Solutions Ltd", "organization" : "Cobweb Solutions Ltd" } }, { "::217.35.170.0/119" : { "isp" : "Start Services", "organization" : "Start Services" } }, { "::217.35.172.0/118" : { "isp" : "Start Services", "organization" : "Start Services" } }, { "::217.63.203.160/123" : { "isp" : "Basisschool De Zaaier", "organization" : "Basisschool De Zaaier" } }, { "::217.76.36.0/120" : { "isp" : "AO VNIITEMR(Machinery&Robotics Institute), Moscow", "organization" : "AO VNIITEMR(Machinery&Robotics Institute), Moscow" } }, { "::217.112.224.0/116" : { "isp" : "SFR", "organization" : "SFR" } }, { "::217.117.217.224/125" : { "organization" : "GIGANET.cz" } }, { "::217.117.217.240/125" : { "organization" : "GIGANET.cz" } }, { "::217.125.152.0/118" : { "isp" : "Telefonica de Espana", "organization" : "Telefonica de Espana" } }, { "::217.125.160.0/115" : { "isp" : "Telefonica de Espana", "organization" : "Telefonica de Espana" } }, { "::217.125.192.0/114" : { "isp" : "Telefonica de Espana", "organization" : "Telefonica de Espana" } }, { "::217.141.185.128/124" : { "isp" : "Hotel Benessere", "organization" : "Hotel Benessere" } }, { "::217.141.234.72/126" : { "isp" : "Comunedisalerno", "organization" : "Comunedisalerno" } }, { "::217.147.234.0/120" : { "isp" : "Tbilisi Pedagogical University", "organization" : "Tbilisi Pedagogical University" } }, { "::217.164.0.0/111" : { "isp" : "Emirates Telecommunications Corporation", "organization" : "Emirates Telecommunications Corporation" } }, { "::217.172.0.0/116" : { "isp" : "T-Systems Italia Spa", "organization" : "T-Systems Italia Spa" } }, { "::217.176.17.0/123" : { "isp" : "Brettenham Infant School", "organization" : "Brettenham Infant School" } }, { "::217.176.21.0/123" : { "isp" : "Shildon County Primary School", "organization" : "Shildon County Primary School" } }, { "::217.176.23.0/123" : { "isp" : "The Campion School", "organization" : "The Campion School" } }, { "::217.176.49.128/122" : { "isp" : "Josca's Preparatory School", "organization" : "Josca's Preparatory School" } }, { "::217.176.85.128/121" : { "isp" : "Dundonald High School", "organization" : "Dundonald High School" } }, { "::217.176.154.232/125" : { "isp" : "Folly Hill County First School", "organization" : "Folly Hill County First School" } }, { "::217.176.154.240/125" : { "isp" : "Beauclerc County Infant School", "organization" : "Beauclerc County Infant School" } }, { "::217.176.156.168/125" : { "isp" : "Holly Lodge County Primary School", "organization" : "Holly Lodge County Primary School" } }, { "::217.176.156.200/125" : { "isp" : "Laleham CE Primary School", "organization" : "Laleham CE Primary School" } }, { "::217.176.159.204/126" : { "isp" : "Surrey County Council", "organization" : "Surrey County Council" } }, { "::217.176.255.0/122" : { "isp" : "Tanfield Lea Junior School", "organization" : "Tanfield Lea Junior School" } }, { "::217.183.12.128/123" : { "isp" : "Tuddenham CE (VC) Primary School", "organization" : "Tuddenham CE (VC) Primary School" } }, { "::217.183.15.64/123" : { "isp" : "West Drayton Primary School", "organization" : "West Drayton Primary School" } }, { "::217.183.18.192/123" : { "isp" : "Wellington Primary School", "organization" : "Wellington Primary School" } }, { "::217.183.55.128/122" : { "isp" : "Brede Primary School", "organization" : "Brede Primary School" } }, { "::217.183.59.0/122" : { "isp" : "Grove CE Primary School", "organization" : "Grove CE Primary School" } }, { "::217.183.130.64/123" : { "isp" : "Longney CE Primary School", "organization" : "Longney CE Primary School" } }, { "::217.183.140.96/123" : { "isp" : "Ketton CE Primary School", "organization" : "Ketton CE Primary School" } }, { "::217.195.192.0/116" : { "isp" : "FiberSunucu internet Hizmetleri Ugur Pala", "organization" : "FiberSunucu internet Hizmetleri Ugur Pala" } }, { "::217.204.110.64/122" : { "isp" : "Radisson Edwardian Hotels - radisson-gw", "organization" : "Radisson Edwardian Hotels - radisson-gw" } }, { "::219.0.0.0/106" : { "autonomous_system_number" : 17676, "autonomous_system_organization" : "Softbank BB Corp.", "isp" : "Softbank BB Corp", "organization" : "Softbank BB Corp" } }, { "::220.0.0.0/106" : { "autonomous_system_number" : 17676, "autonomous_system_organization" : "Softbank BB Corp.", "isp" : "Softbank BB Corp", "organization" : "Softbank BB Corp" } }, { "::222.229.88.0/117" : { "organization" : "Connected Intelligence" } }, { "::222.229.128.0/113" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC" } }, { "::222.230.0.0/113" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC" } }, { "::222.230.128.0/117" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC" } }, { "::222.230.136.0/119" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC", "isp" : "VECTANT Ltd.", "organization" : "VECTANT Ltd." } }, { "::222.230.138.0/119" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC" } }, { "::222.230.140.0/118" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC" } }, { "::222.230.144.0/116" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC" } }, { "::222.230.160.0/115" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC" } }, { "::222.230.192.0/114" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC" } }, { "2001:1700::/27" : { "autonomous_system_number" : 6730, "autonomous_system_organization" : "Sunrise Communications AG" } }, { "2001:1c00::/23" : { "autonomous_system_number" : 9143, "autonomous_system_organization" : "Ziggo B.V." } }, { "2001:2000::/20" : { "autonomous_system_number" : 1299, "autonomous_system_organization" : "TeliaSonera International Carrier" } }, { "2001:4540::/27" : { "autonomous_system_number" : 9924, "autonomous_system_organization" : "Taiwan Fixed Network, Telco and Network Service Provider." } }, { "2001:4580::/26" : { "autonomous_system_number" : 4780, "autonomous_system_organization" : "Digital United Inc." } }, { "2001:4600::/24" : { "autonomous_system_number" : 2119, "autonomous_system_organization" : "Telenor Norge AS" } }, { "2001:5000::/24" : { "autonomous_system_number" : 1273, "autonomous_system_organization" : "Cable and Wireless Worldwide plc" } }, { "2001:5100::/24" : { "autonomous_system_number" : 2529, "autonomous_system_organization" : "Now maintained by Cable & Wireless Worldwide" } }, { "2001:5200::/23" : { "autonomous_system_number" : 1273, "autonomous_system_organization" : "Cable and Wireless Worldwide plc" } }, { "2001:5400::/22" : { "autonomous_system_number" : 1273, "autonomous_system_organization" : "Cable and Wireless Worldwide plc" } }, { "2001:8000::/20" : { "autonomous_system_number" : 1221, "autonomous_system_organization" : "Telstra Pty Ltd" } }, { "2001:b000::/21" : { "autonomous_system_number" : 17419, "autonomous_system_organization" : "HiNet IPv6 Service Network.," } }, { "2003::/19" : { "autonomous_system_number" : 3320, "autonomous_system_organization" : "Deutsche Telekom AG" } }, { "2400::/20" : { "autonomous_system_number" : 4766, "autonomous_system_organization" : "Korea Telecom" } }, { "2400:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2400:2000::/20" : { "autonomous_system_number" : 17676, "autonomous_system_organization" : "Softbank BB Corp." } }, { "2400:3000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2400:4000::/22" : { "autonomous_system_number" : 4713, "autonomous_system_organization" : "NTT Communications Corporation" } }, { "2400:4400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2400:4800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2400:5000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2400:6000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2400:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:8000::/26" : { "autonomous_system_number" : 9919, "autonomous_system_organization" : "New Century InfoComm Tech Co., Ltd." } }, { "2401:8040::/26" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:8080::/25" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:8100::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:8200::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:8400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:8800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:9000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:a000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:c000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2402::/16" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2403::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2403:8000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2403:9000::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2403:9800::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2403:9900::/24" : { "autonomous_system_number" : 17676, "autonomous_system_organization" : "Softbank BB Corp." } }, { "2403:9a00::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2403:9c00::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2403:a000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2403:c000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404::/26" : { "autonomous_system_number" : 17709, "autonomous_system_organization" : "Eastern Broadband Telecom Co.,Ltd" } }, { "2404:40::/26" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:80::/25" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:100::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:200::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2405::/16" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2406::/15" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2408::/22" : { "autonomous_system_number" : 55817, "autonomous_system_organization" : "Nippon Telegraph and Telephone Corporation PF Labs" } }, { "2408:400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2408:800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2408:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2408:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2408:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2408:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2409::/23" : { "autonomous_system_number" : 55391, "autonomous_system_organization" : "INTERNET MULTIFEED CO." } }, { "2409:200::/23" : { "autonomous_system_number" : 55392, "autonomous_system_organization" : "INTERNET MULTIFEED CO." } }, { "2409:400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2409:800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2409:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2409:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2409:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2409:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240a::/16" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240b::/22" : { "autonomous_system_number" : 2516, "autonomous_system_organization" : "KDDI KDDI CORPORATION" } }, { "240b:400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240b:800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240b:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240b:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240b:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240b:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240c::/16" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d::/27" : { "autonomous_system_number" : 2527, "autonomous_system_organization" : "So-net Entertainment Corporation" } }, { "240d:20::/27" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:40::/26" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:80::/25" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:100::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:200::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240e::/24" : { "autonomous_system_number" : 4134, "autonomous_system_organization" : "Chinanet" } }, { "240e:100::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240e:200::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240e:400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240e:800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240e:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240e:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240e:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240e:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240f::/24" : { "autonomous_system_number" : 2516, "autonomous_system_organization" : "KDDI KDDI CORPORATION" } }, { "240f:100::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240f:200::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240f:400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240f:800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240f:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240f:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240f:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240f:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:800::/27" : { "autonomous_system_number" : 701, "autonomous_system_organization" : "MCI Communications Services, Inc. d/b/a Verizon Business" } }, { "2600:820::/27" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:840::/26" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:880::/25" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:900::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:a00::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:c00::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:1000::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:1400::/27" : { "autonomous_system_number" : 31377, "autonomous_system_organization" : "Akamai International B.V." } }, { "2600:1420::/27" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:1440::/26" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:1480::/25" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:1500::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:1600::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:1800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:4000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:5000::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:5400::/27" : { "autonomous_system_number" : 19108, "autonomous_system_organization" : "Suddenlink Communications" } }, { "2600:5420::/27" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:5440::/26" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:5480::/25" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:5500::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:5600::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:5800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:6000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:7000::/24" : { "autonomous_system_number" : 6939, "autonomous_system_organization" : "Hurricane Electric, Inc." } }, { "2600:7100::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:7200::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:7400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:7800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2601::/16" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2602::/24" : { "autonomous_system_number" : 209, "autonomous_system_organization" : "NOVARTIS-DMZ-US" } }, { "2602:100::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2602:200::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2602:300::/24" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "2602:400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2602:800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2602:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2602:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2602:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2602:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2603::/16" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2604::/14" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2608::/13" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2800::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2800:2000::/20" : { "autonomous_system_number" : 10318, "autonomous_system_organization" : "S.A." } }, { "2800:3000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2800:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2800:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2801::/16" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2802::/15" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2804::/15" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2806::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2806:1000::/24" : { "autonomous_system_number" : 8151, "autonomous_system_organization" : "Uninet S.A. de C.V." } }, { "2806:1100::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2806:1200::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2806:1400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2806:1800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2806:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2806:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2806:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2807::/16" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2808::/13" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2a00::/22" : { "autonomous_system_number" : 3209, "autonomous_system_organization" : "Vodafone GmbH" } }, { "2a00:800::/25" : { "autonomous_system_number" : 1257, "autonomous_system_organization" : "TELE2" } }, { "2a00:2000::/23" : { "autonomous_system_number" : 5400, "autonomous_system_organization" : "British Telecommunications plc" } }, { "2a00:2200::/24" : { "autonomous_system_number" : 5400, "autonomous_system_organization" : "British Telecommunications plc" } }, { "2a00:2300::/25" : { "autonomous_system_number" : 5400, "autonomous_system_organization" : "British Telecommunications plc" } }, { "2a00:2380::/25" : { "autonomous_system_number" : 2856, "autonomous_system_organization" : "BTnet UK Regional network" } }, { "2a01:2e0::/28" : { "autonomous_system_number" : 8374, "autonomous_system_organization" : "Polkomtel Sp. z o.o." } }, { "2a01:800::/24" : { "autonomous_system_number" : 3209, "autonomous_system_organization" : "Vodafone GmbH" } }, { "2a01:c00::/26" : { "autonomous_system_number" : 13184, "autonomous_system_organization" : "Telefonica Germany GmbH & Co.OHG" } }, { "2a01:e00::/26" : { "autonomous_system_number" : 12322, "autonomous_system_organization" : "Free SAS" } }, { "2a01:1000::/21" : { "autonomous_system_number" : 5617, "autonomous_system_organization" : "Telekomunikacja Polska S.A." } }, { "2a01:2000::/20" : { "autonomous_system_number" : 3269, "autonomous_system_organization" : "Telecom Italia S.p.a." } }, { "2a01:c000::/19" : { "autonomous_system_number" : 5511, "autonomous_system_organization" : "Orange S.A." } }, { "2a02:1200::/27" : { "autonomous_system_number" : 3303, "autonomous_system_organization" : "Swisscom (Switzerland) Ltd" } }, { "2a02:1400::/26" : { "autonomous_system_number" : 2119, "autonomous_system_organization" : "Telenor Norge AS" } }, { "2a02:1800::/24" : { "autonomous_system_number" : 6848, "autonomous_system_organization" : "Telenet N.V." } }, { "2a02:2e00::/27" : { "autonomous_system_number" : 12715, "autonomous_system_organization" : "Jazz Telecom S.A." } }, { "2a02:3000::/23" : { "autonomous_system_number" : 6805, "autonomous_system_organization" : "Telefonica Germany GmbH & Co.OHG" } }, { "2a02:8100::/27" : { "autonomous_system_number" : 31334, "autonomous_system_organization" : "Kabel Deutschland Vertrieb und Service GmbH" } }, { "2a02:8200::/27" : { "autonomous_system_number" : 9145, "autonomous_system_organization" : "EWE TEL GmbH" } }, { "2a02:8400::/25" : { "autonomous_system_number" : 15557, "autonomous_system_organization" : "Societe Francaise du Radiotelephone S.A" } }, { "2a02:9000::/23" : { "autonomous_system_number" : 3352, "autonomous_system_organization" : "TELEFONICA DE ESPANA" } }, { "2a02:a000::/26" : { "autonomous_system_number" : 5432, "autonomous_system_organization" : "Belgacom regional ASN" } }, { "2a02:a200::/27" : { "autonomous_system_number" : 6830, "autonomous_system_organization" : "Liberty Global Operations B.V." } }, { "2a02:a300::/27" : { "autonomous_system_number" : 6830, "autonomous_system_organization" : "Liberty Global Operations B.V." } }, { "2a02:a400::/26" : { "autonomous_system_number" : 1136, "autonomous_system_organization" : "KPN Internet Solutions" } }, { "2a02:a440::/26" : { "autonomous_system_number" : 8737, "autonomous_system_organization" : "Koninklijke KPN N.V." } }, { "2a02:a800::/26" : { "autonomous_system_number" : 6739, "autonomous_system_organization" : "Cableuropa - ONO" } }, { "2a02:aa00::/27" : { "autonomous_system_number" : 6830, "autonomous_system_organization" : "Liberty Global Operations B.V." } }, { "2a04:2400::/27" : { "autonomous_system_number" : 6830, "autonomous_system_organization" : "Liberty Global Operations B.V." } }, { "2c00::/13" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c08::/14" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0c::/15" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0e::/20" : { "autonomous_system_number" : 24863, "autonomous_system_organization" : "LINKdotNET" } }, { "2c0e:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0e:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0e:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0e:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:8000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:c000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:e000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:f000::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:f800::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:fc00::/27" : { "autonomous_system_number" : 3741, "autonomous_system_organization" : "IS" } }, { "2c0f:fc20::/27" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:fc40::/26" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:fc80::/25" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:fd00::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:fe00::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:ff00::/26" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:ff40::/26" : { "autonomous_system_number" : 10474, "autonomous_system_organization" : "MWEB-10474" } }, { "2c0f:ff80::/25" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc.", "isp" : "Merit Network Inc.", "organization" : "Merit Network Inc." } } ] GeoIP2-Precision-Enterprise-Test.json000066400000000000000000002063761507532544400345460ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/source-data[ { "::1.124.213.0/120" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "confidence" : 99, "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán", "fr" : "Iran", "ja" : "イラン・イスラム共和国", "pt-BR" : "Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "location" : { "accuracy_radius" : 50, "latitude" : 35.6961, "longitude" : 51.4231, "time_zone" : "Asia/Tehran" }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán", "fr" : "Iran", "ja" : "イラン・イスラム共和国", "pt-BR" : "Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "traits" : { "autonomous_system_number" : 44244, "autonomous_system_organization" : "Iran Cell Service and Communication Company", "connection_type" : "Cellular", "isp" : "Iran Cell Service and Communication Company", "organization" : "Iran Cell Service and Communication Company", "static_ip_score" : 0.25, "user_type" : "cellular" } } }, { "::1.231.232.0/120" : { "city" : { "confidence" : 60, "geoname_id" : 709334, "names" : { "de" : "Dschankoj", "en" : "Dzhankoy", "ru" : "Джанкой" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "confidence" : 80, "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "location" : { "accuracy_radius" : 200, "latitude" : 45.7117, "longitude" : 34.3927, "time_zone" : "Europe/Simferopol" }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "subdivisions" : [ { "confidence" : 70, "geoname_id" : 703883, "iso_code" : "43", "names" : { "de" : "Krim", "en" : "Autonomous Republic of Crimea", "fr" : "République autonome de Crimée", "ru" : "Республика Крым" } } ], "traits" : { "autonomous_system_number" : 28761, "autonomous_system_organization" : "CrimeaCom South LLC", "connection_type" : "Cable/DSL", "isp" : "CrimeaCom South LLC", "organization" : "CrimeaCom South LLC", "static_ip_score" : 0.26, "user_type" : "residential" } } }, { "::2.125.160.216/125" : { "city" : { "confidence" : 50, "geoname_id" : 2655045, "names" : { "en" : "Boxford" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "confidence" : 95, "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.75, "longitude" : -1.25, "time_zone" : "Europe/London" }, "postal" : { "code" : "OX1", "confidence" : 20 }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "subdivisions" : [ { "confidence" : 70, "geoname_id" : 6269131, "iso_code" : "ENG", "names" : { "en" : "England", "es" : "Inglaterra", "fr" : "Angleterre", "pt-BR" : "Inglaterra" } }, { "geoname_id" : 3333217, "iso_code" : "WBK", "names" : { "en" : "West Berkshire", "ru" : "Западный Беркшир", "zh-CN" : "西伯克郡" } } ], "traits" : { "static_ip_score" : 0.27 } } }, { "::5.83.124.0/118" : { "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "traits" : { "is_anonymous_proxy" : true, "isp" : "WifiNetCom", "static_ip_score" : 0.28 } } }, { "::12.87.118.0/119" : { "traits" : { "autonomous_system_number" : 7018, "isp" : "AT&T Services", "organization" : "AT&T Worldnet Services", "static_ip_score" : 0.31 } } }, { "::41.189.160.0/124" : { "city" : { "geoname_id" : 2293801, "names" : { "en" : "Yendi" } }, "continent" : { "code" : "AF", "geoname_id" : 6255146, "names" : { "de" : "Afrika", "en" : "Africa", "es" : "África", "fr" : "Afrique", "ja" : "アフリカ", "pt-BR" : "África", "ru" : "Африка", "zh-CN" : "非洲" } }, "country" : { "geoname_id" : 2300660, "iso_code" : "GH", "names" : { "de" : "Ghana", "en" : "Ghana", "es" : "Ghana", "fr" : "Ghana", "ja" : "ガーナ共和国", "pt-BR" : "Gana", "ru" : "Гана", "zh-CN" : "加纳" } }, "location" : { "accuracy_radius" : 20, "latitude" : 9.4333, "longitude" : -0.0167, "time_zone" : "Africa/Accra" }, "registered_country" : { "geoname_id" : 2300660, "iso_code" : "GH", "names" : { "de" : "Ghana", "en" : "Ghana", "es" : "Ghana", "fr" : "Ghana", "ja" : "ガーナ共和国", "pt-BR" : "Gana", "ru" : "Гана", "zh-CN" : "加纳" } }, "subdivisions" : [ { "geoname_id" : 2297169, "iso_code" : "NP", "names" : { "en" : "Northern Region" } } ], "traits" : { "static_ip_score" : 0.33 } } }, { "::64.17.254.216/125" : { "city" : { "confidence" : 40, "geoname_id" : 5368361, "names" : { "de" : "Los Angeles", "en" : "Los Angeles", "es" : "Los Ángeles", "fr" : "Los Angeles", "ja" : "ロサンゼルス", "pt-BR" : "Los Angeles", "ru" : "Лос-Анджелес", "zh-CN" : "洛杉矶" } }, "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "Norteamérica", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "confidence" : 99, "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "location" : { "accuracy_radius" : 20, "latitude" : 34.0544, "longitude" : -118.244, "metro_code" : 803, "time_zone" : "America/Los_Angeles" }, "postal" : { "code" : "90009", "confidence" : 1 }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "confidence" : 90, "geoname_id" : 5332921, "iso_code" : "CA", "names" : { "de" : "Kalifornien", "en" : "California", "es" : "California", "fr" : "Californie", "ja" : "カリフォルニア州", "pt-BR" : "Califórnia", "ru" : "Калифорния", "zh-CN" : "加利福尼亚州" } } ], "traits" : { "autonomous_system_number" : 33224, "autonomous_system_organization" : "Towerstream I, Inc.", "connection_type" : "Corporate", "isp" : "Towerstream I", "organization" : "Towerstream I", "static_ip_score" : 0.34, "user_type" : "business" } } }, { "::65.116.3.80/126" : { "city" : { "confidence" : 40, "geoname_id" : 4699066, "names" : { "en" : "Houston", "fr" : "Houston", "ja" : "ヒューストン", "pt-BR" : "Houston", "ru" : "Хьюстон", "zh-CN" : "休斯敦" } }, "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "Norteamérica", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "confidence" : 99, "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "location" : { "accuracy_radius" : 500, "latitude" : 29.7702, "longitude" : -95.3628, "metro_code" : 618, "time_zone" : "America/Chicago" }, "postal" : { "code" : "77002", "confidence" : 1 }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "confidence" : 90, "geoname_id" : 4736286, "iso_code" : "TX", "names" : { "en" : "Texas", "es" : "Texas", "fr" : "Texas", "ja" : "テキサス州", "ru" : "Техас", "zh-CN" : "德克萨斯州" } } ], "traits" : { "autonomous_system_number" : 209, "autonomous_system_organization" : "Qwest Communications Company, LLC", "connection_type" : "Cable/DSL", "domain" : "qwest.net", "isp" : "CenturyLink", "organization" : "CenturyLink", "static_ip_score" : 0.34, "user_type" : "residential" } } }, { "::66.92.181.240/124" : { "city" : { "confidence" : 20, "geoname_id" : 5392171, "names" : { "de" : "San José", "en" : "San Jose", "es" : "San José", "fr" : "San José", "ja" : "サンノゼ", "pt-BR" : "San José", "ru" : "Сан-Хосе" } }, "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "Norteamérica", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "confidence" : 99, "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "location" : { "accuracy_radius" : 1000, "latitude" : 37.3874, "longitude" : -121.9024, "metro_code" : 807, "time_zone" : "America/Los_Angeles" }, "postal" : { "code" : "95131", "confidence" : 10 }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "confidence" : 60, "geoname_id" : 5332921, "iso_code" : "CA", "names" : { "de" : "Kalifornien", "en" : "California", "es" : "California", "fr" : "Californie", "ja" : "カリフォルニア州", "pt-BR" : "Califórnia", "ru" : "Калифорния", "zh-CN" : "加利福尼亚州" } } ], "traits" : { "autonomous_system_number" : 18566, "autonomous_system_organization" : "MegaPath Corporation", "connection_type" : "Cable/DSL", "domain" : "speakeasy.net", "isp" : "Speakeasy", "organization" : "Vikco Insurance", "static_ip_score" : 0.34, "user_type" : "government" } } }, { "::67.43.156.0/120" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "confidence" : 99, "geoname_id" : 1252634, "iso_code" : "BT", "names" : { "de" : "Bhutan", "en" : "Bhutan", "es" : "Bután", "fr" : "Bhutan", "ja" : "ブータン王国", "pt-BR" : "Butão", "ru" : "Бутан", "zh-CN" : "不丹" } }, "location" : { "accuracy_radius" : 534, "latitude" : 27.5, "longitude" : 90.5, "time_zone" : "Asia/Thimphu" }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "traits" : { "autonomous_system_number" : 35908, "domain" : "shoesfin.NET", "is_anonymous_proxy" : true, "isp" : "Loud Packet", "organization" : "zudoarichikito_", "static_ip_score" : 0.34, "user_type" : "search_engine_spider" } } }, { "::74.209.24.0/116" : { "city" : { "confidence" : 11, "geoname_id" : 5112335, "names" : { "en" : "Chatham" } }, "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "Norteamérica", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "confidence" : 99, "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "location" : { "accuracy_radius" : 27, "latitude" : 42.3478, "longitude" : -73.5549, "metro_code" : 532, "time_zone" : "America/New_York" }, "postal" : { "code" : "12037", "confidence" : 11 }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "confidence" : 93, "geoname_id" : 5128638, "iso_code" : "NY", "names" : { "de" : "New York", "en" : "New York", "es" : "Nueva York", "fr" : "New York", "ja" : "ニューヨーク州", "pt-BR" : "Nova Iorque", "ru" : "Нью-Йорк", "zh-CN" : "纽约州" } } ], "traits" : { "autonomous_system_number" : 14671, "autonomous_system_organization" : "FairPoint Communications", "connection_type" : "Cable/DSL", "domain" : "frpt.net", "is_anonymous_proxy" : true, "is_legitimate_proxy" : true, "is_satellite_provider" : true, "isp" : "Fairpoint Communications", "organization" : "Fairpoint Communications", "static_ip_score" : 0.34, "user_type" : "residential" } } }, { "::75.209.24.0/128" : { "city" : { "confidence" : 11, "geoname_id" : 5112335, "names" : { "en" : "Chatham" } }, "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "Norteamérica", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "confidence" : 99, "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "location" : { "accuracy_radius" : 27, "latitude" : 42.3478, "longitude" : -73.5549, "metro_code" : 532, "time_zone" : "America/New_York" }, "postal" : { "code" : "12037", "confidence" : 11 }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "confidence" : 93, "geoname_id" : 5128638, "iso_code" : "NY", "names" : { "de" : "New York", "en" : "New York", "es" : "Nueva York", "fr" : "New York", "ja" : "ニューヨーク州", "pt-BR" : "Nova Iorque", "ru" : "Нью-Йорк", "zh-CN" : "纽约州" } } ], "traits" : { "autonomous_system_number" : 14671, "autonomous_system_organization" : "FairPoint Communications", "connection_type" : "Cable/DSL", "domain" : "frpt.net", "is_anonymous_proxy" : true, "is_legitimate_proxy" : true, "is_satellite_provider" : true, "isp" : "Fairpoint Communications", "organization" : "Fairpoint Communications", "static_ip_score" : 0.35, "user_type" : "residential" } } }, { "::81.2.69.142/127" : { "city" : { "confidence" : 50, "geoname_id" : 2643743, "names" : { "de" : "London", "en" : "London", "es" : "Londres", "fr" : "Londres", "ja" : "ロンドン", "pt-BR" : "Londres", "ru" : "Лондон" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "confidence" : 95, "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 10, "latitude" : 51.5142, "longitude" : -0.0931, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "confidence" : 70, "geoname_id" : 6269131, "iso_code" : "ENG", "names" : { "en" : "England", "es" : "Inglaterra", "fr" : "Angleterre", "pt-BR" : "Inglaterra" } } ], "traits" : { "domain" : "in-addr.arpa", "static_ip_score" : 0.34 } } }, { "::81.2.69.160/123" : { "city" : { "confidence" : 42, "geoname_id" : 2643743, "names" : { "de" : "London", "en" : "London", "es" : "Londres", "fr" : "Londres", "ja" : "ロンドン", "pt-BR" : "Londres", "ru" : "Лондон" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "confidence" : 99, "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5142, "longitude" : -0.0931, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "confidence" : 42, "geoname_id" : 6269131, "iso_code" : "ENG", "names" : { "en" : "England", "es" : "Inglaterra", "fr" : "Angleterre", "pt-BR" : "Inglaterra" } } ], "traits" : { "domain" : "in-addr.arpa", "isp" : "Andrews & Arnold Ltd", "organization" : "STONEHOUSE office network", "static_ip_score" : 0.34, "user_type" : "government" } } }, { "::89.160.20.112/124" : { "city" : { "confidence" : 51, "geoname_id" : 2694762, "names" : { "de" : "Linköping", "en" : "Linköping", "fr" : "Linköping", "ja" : "リンシェーピング", "zh-CN" : "林雪平" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "confidence" : 99, "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 76, "latitude" : 58.4167, "longitude" : 15.6167, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "subdivisions" : [ { "confidence" : 51, "geoname_id" : 2685867, "iso_code" : "E", "names" : { "en" : "Östergötland County", "fr" : "Comté d'Östergötland" } } ], "traits" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB", "connection_type" : "Corporate", "domain" : "bredband2.com", "isp" : "Bredband2 AB", "organization" : "Bevtec", "static_ip_score" : 0.34, "user_type" : "government" } } }, { "::128.101.101.101/128" : { "city" : { "confidence" : 50, "geoname_id" : 5037649, "names" : { "de" : "Minneapolis", "en" : "Minneapolis", "es" : "Mineápolis", "fr" : "Minneapolis", "ja" : "ミネアポリス", "pt-BR" : "Minneapolis", "ru" : "Миннеаполис", "zh-CN" : "明尼阿波利斯" } }, "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "Norteamérica", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "confidence" : 95, "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "Сша", "zh-CN" : "美国" } }, "location" : { "accuracy_radius" : 3, "latitude" : 44.9759, "longitude" : -93.2166, "metro_code" : 613, "time_zone" : "America/Chicago" }, "postal" : { "code" : "55414", "confidence" : 20 }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "Сша", "zh-CN" : "美国" } }, "subdivisions" : [ { "confidence" : 70, "geoname_id" : 5037779, "iso_code" : "MN", "names" : { "en" : "Minnesota", "es" : "Minnesota", "ja" : "ミネソタ州", "ru" : "Миннесота" } } ], "traits" : { "autonomous_system_number" : 2313, "autonomous_system_organization" : "Precision AS Org", "isp" : "Precision ISP", "organization" : "Precision Org", "static_ip_score" : 0.46, "user_type" : "residential" } } }, { "::143.217.214.0/120" : { "city" : { "confidence" : 50, "geoname_id" : 1566083, "names" : { "de" : "Ho-Chi-Minh-Stadt", "en" : "Ho Chi Minh City", "es" : "Ciudad Ho Chi Minh", "fr" : "HCMV", "ja" : "ホーチミン市", "pt-BR" : "Cidade de Ho Chi Minh", "ru" : "Хошимин", "zh-CN" : "胡志明市" } }, "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "confidence" : 99, "geoname_id" : 1562822, "iso_code" : "VN", "names" : { "de" : "Vietnam", "en" : "Vietnam", "es" : "Vietnam", "fr" : "Vietnam", "ja" : "ベトナム", "pt-BR" : "Vietnã", "ru" : "Вьетнам", "zh-CN" : "越南" } }, "location" : { "accuracy_radius" : 500, "latitude" : 10.8142, "longitude" : 106.6438, "time_zone" : "Asia/Ho_Chi_Minh" }, "registered_country" : { "geoname_id" : 1562822, "iso_code" : "VN", "names" : { "de" : "Vietnam", "en" : "Vietnam", "es" : "Vietnam", "fr" : "Vietnam", "ja" : "ベトナム", "pt-BR" : "Vietnã", "ru" : "Вьетнам", "zh-CN" : "越南" } }, "subdivisions" : [ { "confidence" : 60, "geoname_id" : 1580578, "iso_code" : "SG", "names" : { "de" : "Ho-Chi-Minh-Stadt", "en" : "Ho Chi Minh City", "es" : "Ciudad Ho Chi Minh", "fr" : "Saigon", "ja" : "ホーチミン市", "pt-BR" : "Cidade de Ho Chi Minh", "ru" : "Хо Ши Мин", "zh-CN" : "胡志明市" } } ], "traits" : { "autonomous_system_number" : 18403, "autonomous_system_organization" : "The Corporation for Financing & Promoting Technology", "connection_type" : "Cable/DSL", "isp" : "The Corporation for Financing and Promoting Techno", "organization" : "FPT Telecom Company", "static_ip_score" : 0.46, "user_type" : "business" } } }, { "::149.101.100.0/124" : { "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "América del Norte", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "confidence" : 99, "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "location" : { "accuracy_radius" : 1000, "latitude" : 37.751, "longitude" : -97.822, "time_zone" : "America/Chicago" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "traits" : { "autonomous_system_number" : 6167, "autonomous_system_organization" : "CELLCO-PART", "isp" : "Verizon Wireless", "mobile_country_code" : "310", "mobile_network_code" : "004", "organization" : "Verizon Wireless" } } }, { "::175.16.199.0/120" : { "city" : { "confidence" : 50, "geoname_id" : 2038180, "names" : { "de" : "Chángchūn", "en" : "Changchun", "fr" : "Changchun", "ja" : "長春市", "ru" : "Чанчунь", "zh-CN" : "长春" } }, "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "confidence" : 95, "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "China", "es" : "China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 43.88, "longitude" : 125.3228, "time_zone" : "Asia/Harbin" }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "China", "es" : "China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "subdivisions" : [ { "confidence" : 70, "geoname_id" : 2036500, "iso_code" : "22", "names" : { "en" : "Jilin Sheng", "zh-CN" : "吉林" } } ], "traits" : { "static_ip_score" : 0.63, "user_type" : "residential" } } }, { "::188.35.144.0/119" : { "traits" : { "organization" : "CityLink Ltd", "static_ip_score" : 0.64 } } }, { "::202.196.224.0/116" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "confidence" : 95, "geoname_id" : 1694008, "iso_code" : "PH", "names" : { "de" : "Philippinen", "en" : "Philippines", "es" : "Filipinas", "fr" : "Philippines", "ja" : "フィリピン共和国", "pt-BR" : "Filipinas", "ru" : "Филиппины", "zh-CN" : "菲律宾" } }, "location" : { "accuracy_radius" : 121, "latitude" : 13, "longitude" : 122, "time_zone" : "Asia/Manila" }, "postal" : { "code" : "34021", "confidence" : 20 }, "registered_country" : { "geoname_id" : 1694008, "iso_code" : "PH", "names" : { "de" : "Philippinen", "en" : "Philippines", "es" : "Filipinas", "fr" : "Philippines", "ja" : "フィリピン共和国", "pt-BR" : "Filipinas", "ru" : "Филиппины", "zh-CN" : "菲律宾" } }, "represented_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" }, "type" : "military" }, "traits" : { "static_ip_score" : 1.29 } } }, { "::208.110.217.113/128" : { "city" : { "confidence" : 20, "geoname_id" : 4734825, "names" : { "en" : "Sugar Land", "ja" : "シュガーランド", "pt-BR" : "Sugar Land", "ru" : "Шугар-Ленд" } }, "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "Norteamérica", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "confidence" : 99, "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "location" : { "accuracy_radius" : 1000, "latitude" : 29.6197, "longitude" : -95.635, "metro_code" : 618, "time_zone" : "America/Chicago" }, "postal" : { "code" : "77487", "confidence" : 1 }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "confidence" : 60, "geoname_id" : 4736286, "iso_code" : "TX", "names" : { "en" : "Texas", "es" : "Texas", "fr" : "Texas", "ja" : "テキサス州", "ru" : "Техас", "zh-CN" : "德克萨斯州" } } ], "traits" : { "autonomous_system_number" : 11025, "autonomous_system_organization" : "Comcast Cable Communications, LLC", "connection_type" : "Cable/DSL", "domain" : "comcastbusiness.net", "isp" : "Comcast Business", "organization" : "Comcast Business", "static_ip_score" : 1.47, "user_type" : "business" } } }, { "::216.160.83.56/125" : { "city" : { "confidence" : 40, "geoname_id" : 5803556, "names" : { "en" : "Milton", "ru" : "Мильтон" } }, "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "América del Norte", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "confidence" : 99, "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "location" : { "accuracy_radius" : 22, "latitude" : 47.2513, "longitude" : -122.3149, "metro_code" : 819, "time_zone" : "America/Los_Angeles" }, "postal" : { "code" : "98354", "confidence" : 40 }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "subdivisions" : [ { "confidence" : 99, "geoname_id" : 5815135, "iso_code" : "WA", "names" : { "en" : "Washington", "es" : "Washington", "fr" : "État de Washington", "ja" : "ワシントン州", "ru" : "Вашингтон", "zh-CN" : "华盛顿州" } } ], "traits" : { "autonomous_system_number" : 209, "connection_type" : "Cable/DSL", "isp" : "Century Link", "organization" : "Lariat Software", "static_ip_score" : 1.47, "user_type" : "government" } } }, { "2001:218::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "confidence" : 95, "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "traits" : { "static_ip_score" : 2.81 } } }, { "2001:250::/31" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "confidence" : 95, "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35, "longitude" : 105 }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "traits" : { "static_ip_score" : 2.81 } } }, { "2a02:d280::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "confidence" : 95, "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 49.75, "longitude" : 15, "time_zone" : "Europe/Prague" }, "registered_country" : { "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } }, "traits" : { "static_ip_score" : 4.17 } } }, { "::212.47.235.81/128" : { "traits" : { "is_anonymous_proxy" : true, "static_ip_score" : 1.47 } } }, { "::212.47.235.82/128" : { "traits" : { "is_satellite_provider" : true, "static_ip_score" : 1.47 } } }, { "::1.9.127.107/128" : { "traits" : { "static_ip_score" : 0.22, "user_type" : "business" } } }, { "::102.35.19.0/128" : { "traits" : { "static_ip_score" : 0.4, "user_type" : "cellular" } } }, { "214.214.214.214/32" : { "traits" : { "static_ip_score" : 0.4, "user_type" : "content_delivery_network" } } }, { "214.214.214.215/32" : { "traits" : { "static_ip_score" : 0.4, "user_type" : "business" } } }, { "2001:219::/32" : { "city" : { "confidence" : 51, "geoname_id" : 2694762, "names" : { "de" : "Linköping", "en" : "Linköping", "fr" : "Linköping", "ja" : "リンシェーピング", "zh-CN" : "林雪平" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "confidence" : 99, "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 76, "latitude" : 58.4167, "longitude" : 15.6167, "metro_code" : 4, "time_zone" : "Europe/Stockholm" }, "postal" : { "code" : "138 20", "confidence" : 20 }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "subdivisions" : [ { "confidence" : 51, "geoname_id" : 2685867, "iso_code" : "E", "names" : { "en" : "Östergötland County", "fr" : "Comté d'Östergötland" } } ], "traits" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB", "connection_type" : "Corporate", "domain" : "bredband2.com", "isp" : "Bredband2 AB", "organization" : "Bevtec", "static_ip_score" : 2.81, "user_type" : "government" } } }, { "2001:220::/128" : { "city" : { "confidence" : 51, "geoname_id" : 2694762, "names" : { "de" : "Linköping", "en" : "Linköping", "fr" : "Linköping", "ja" : "リンシェーピング", "zh-CN" : "林雪平" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "confidence" : 99, "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 76, "latitude" : 58.4167, "longitude" : 15.6167, "metro_code" : 4, "time_zone" : "Europe/Stockholm" }, "postal" : { "code" : "138 20", "confidence" : 20 }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "subdivisions" : [ { "confidence" : 51, "geoname_id" : 2685867, "iso_code" : "E", "names" : { "en" : "Östergötland County", "fr" : "Comté d'Östergötland" } } ], "traits" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB", "connection_type" : "Corporate", "domain" : "bredband2.com", "isp" : "Bredband2 AB", "organization" : "Bevtec", "static_ip_score" : 2.82, "user_type" : "government" } } }, { "::2.20.32.110/127" : { "city" : { "confidence" : 60, "geoname_id" : 315808, "names" : { "de" : "Elazığ", "en" : "Elâzığ", "fr" : "Elazığ", "ja" : "エラズー", "ru" : "Элязыг", "zh-CN" : "埃拉泽" } }, "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "confidence" : 90, "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "location" : { "accuracy_radius" : 50, "latitude" : 38.6229, "longitude" : 39.3217, "time_zone" : "Europe/Istanbul" }, "postal" : { "code" : "23100", "confidence" : 30 }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "subdivisions" : [ { "confidence" : 60, "geoname_id" : 315807, "iso_code" : "23", "names" : { "en" : "Elazığ" } } ], "traits" : { "autonomous_system_number" : 8517, "autonomous_system_organization" : "National Academic Network and Information Center", "connection_type" : "Cable/DSL", "isp" : "National Academic Network and Information Center", "organization" : "National Academic Network and Information Center", "user_type" : "business" } } }, { "2001:480::/64" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } } ] GeoIP2-Static-IP-Score-Test.json000066400000000000000000000732471507532544400333020ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/source-data[ { "::1.0.0.0/111" : { "score" : 0.01 } }, { "::1.2.0.0/119" : { "score" : 0.02 } }, { "::1.2.2.0/120" : { "score" : 0.03 } }, { "::1.2.3.0/126" : { "score" : 0.04 } }, { "::1.2.3.4/128" : { "score" : 0.05 } }, { "::1.2.3.5/128" : { "score" : 0.06 } }, { "::1.2.3.6/128" : { "score" : 0.07 } }, { "::1.2.3.7/128" : { "score" : 0.08 } }, { "::1.2.3.8/125" : { "score" : 0.09 } }, { "::1.2.3.16/124" : { "score" : 0.1 } }, { "::1.2.3.32/123" : { "score" : 0.11 } }, { "::1.2.3.64/122" : { "score" : 0.12 } }, { "::1.2.3.128/121" : { "score" : 0.13 } }, { "::1.2.4.0/118" : { "score" : 0.14 } }, { "::1.2.8.0/117" : { "score" : 0.15 } }, { "::1.2.16.0/116" : { "score" : 0.16 } }, { "::1.2.32.0/115" : { "score" : 0.17 } }, { "::1.2.64.0/114" : { "score" : 0.18 } }, { "::1.2.128.0/113" : { "score" : 0.19 } }, { "::1.3.0.0/112" : { "score" : 0.2 } }, { "::1.4.0.0/110" : { "score" : 0.21 } }, { "::1.8.0.0/109" : { "score" : 0.22 } }, { "::1.16.0.0/108" : { "score" : 0.23 } }, { "::1.32.0.0/107" : { "score" : 0.24 } }, { "::1.64.0.0/106" : { "score" : 0.25 } }, { "::1.128.0.0/105" : { "score" : 0.26 } }, { "::2.0.0.0/103" : { "score" : 0.27 } }, { "::4.0.0.0/102" : { "score" : 0.28 } }, { "::8.0.0.0/103" : { "score" : 0.29 } }, { "::11.0.0.0/104" : { "score" : 0.3 } }, { "::12.0.0.0/102" : { "score" : 0.31 } }, { "::16.0.0.0/100" : { "score" : 0.32 } }, { "::32.0.0.0/99" : { "score" : 0.33 } }, { "::64.0.0.0/99" : { "score" : 0.34 } }, { "::75.209.24.0/128" : { "score" : 0.35 } }, { "::96.0.0.0/102" : { "score" : 0.36 } }, { "::100.0.0.0/106" : { "score" : 0.37 } }, { "::100.128.0.0/105" : { "score" : 0.38 } }, { "::101.0.0.0/104" : { "score" : 0.39 } }, { "::102.0.0.0/103" : { "score" : 0.4 } }, { "::104.0.0.0/101" : { "score" : 0.41 } }, { "::112.0.0.0/101" : { "score" : 0.42 } }, { "::120.0.0.0/102" : { "score" : 0.43 } }, { "::124.0.0.0/103" : { "score" : 0.44 } }, { "::126.0.0.0/104" : { "score" : 0.45 } }, { "::128.0.0.0/99" : { "score" : 0.46 } }, { "::160.0.0.0/101" : { "score" : 0.47 } }, { "::168.0.0.0/104" : { "score" : 0.48 } }, { "::169.0.0.0/105" : { "score" : 0.49 } }, { "::169.128.0.0/106" : { "score" : 0.5 } }, { "::169.192.0.0/107" : { "score" : 0.51 } }, { "::169.224.0.0/108" : { "score" : 0.52 } }, { "::169.240.0.0/109" : { "score" : 0.53 } }, { "::169.248.0.0/110" : { "score" : 0.54 } }, { "::169.252.0.0/111" : { "score" : 0.55 } }, { "::169.255.0.0/112" : { "score" : 0.56 } }, { "::170.0.0.0/103" : { "score" : 0.57 } }, { "::172.0.0.0/108" : { "score" : 0.58 } }, { "::172.32.0.0/107" : { "score" : 0.59 } }, { "::172.64.0.0/106" : { "score" : 0.6 } }, { "::172.128.0.0/105" : { "score" : 0.61 } }, { "::173.0.0.0/104" : { "score" : 0.62 } }, { "::174.0.0.0/103" : { "score" : 0.63 } }, { "::176.0.0.0/100" : { "score" : 0.64 } }, { "::192.0.0.8/125" : { "score" : 0.65 } }, { "::192.0.0.16/124" : { "score" : 0.66 } }, { "::192.0.0.32/123" : { "score" : 0.67 } }, { "::192.0.0.64/122" : { "score" : 0.68 } }, { "::192.0.0.128/121" : { "score" : 0.69 } }, { "::192.0.1.0/120" : { "score" : 0.7 } }, { "::192.0.3.0/120" : { "score" : 0.71 } }, { "::192.0.4.0/118" : { "score" : 0.72 } }, { "::192.0.8.0/117" : { "score" : 0.73 } }, { "::192.0.16.0/116" : { "score" : 0.74 } }, { "::192.0.32.0/115" : { "score" : 0.75 } }, { "::192.0.64.0/114" : { "score" : 0.76 } }, { "::192.0.128.0/113" : { "score" : 0.77 } }, { "::192.1.0.0/112" : { "score" : 0.78 } }, { "::192.2.0.0/111" : { "score" : 0.79 } }, { "::192.4.0.0/110" : { "score" : 0.8 } }, { "::192.8.0.0/109" : { "score" : 0.81 } }, { "::192.16.0.0/108" : { "score" : 0.82 } }, { "::192.32.0.0/107" : { "score" : 0.83 } }, { "::192.64.0.0/108" : { "score" : 0.84 } }, { "::192.80.0.0/109" : { "score" : 0.85 } }, { "::192.88.0.0/114" : { "score" : 0.86 } }, { "::192.88.64.0/115" : { "score" : 0.87 } }, { "::192.88.96.0/119" : { "score" : 0.88 } }, { "::192.88.98.0/120" : { "score" : 0.89 } }, { "::192.88.100.0/118" : { "score" : 0.9 } }, { "::192.88.104.0/117" : { "score" : 0.91 } }, { "::192.88.112.0/116" : { "score" : 0.92 } }, { "::192.88.128.0/113" : { "score" : 0.93 } }, { "::192.89.0.0/112" : { "score" : 0.94 } }, { "::192.90.0.0/111" : { "score" : 0.95 } }, { "::192.92.0.0/110" : { "score" : 0.96 } }, { "::192.96.0.0/107" : { "score" : 0.97 } }, { "::192.128.0.0/107" : { "score" : 0.98 } }, { "::192.160.0.0/109" : { "score" : 0.99 } }, { "::192.169.0.0/112" : { "score" : 1.0 } }, { "::192.170.0.0/111" : { "score" : 1.01 } }, { "::192.172.0.0/110" : { "score" : 1.02 } }, { "::192.176.0.0/108" : { "score" : 1.03 } }, { "::192.192.0.0/106" : { "score" : 1.04 } }, { "::193.0.0.0/104" : { "score" : 1.05 } }, { "::194.0.0.0/103" : { "score" : 1.06 } }, { "::196.0.0.0/103" : { "score" : 1.07 } }, { "::198.0.0.0/108" : { "score" : 1.08 } }, { "::198.16.0.0/111" : { "score" : 1.09 } }, { "::198.20.0.0/110" : { "score" : 1.1 } }, { "::198.24.0.0/109" : { "score" : 1.11 } }, { "::198.32.0.0/108" : { "score" : 1.12 } }, { "::198.48.0.0/111" : { "score" : 1.13 } }, { "::198.50.0.0/112" : { "score" : 1.14 } }, { "::198.51.0.0/114" : { "score" : 1.15 } }, { "::198.51.64.0/115" : { "score" : 1.16 } }, { "::198.51.96.0/118" : { "score" : 1.17 } }, { "::198.51.101.0/120" : { "score" : 1.18 } }, { "::198.51.102.0/119" : { "score" : 1.19 } }, { "::198.51.104.0/117" : { "score" : 1.2 } }, { "::198.51.112.0/116" : { "score" : 1.21 } }, { "::198.51.128.0/113" : { "score" : 1.22 } }, { "::198.52.0.0/110" : { "score" : 1.23 } }, { "::198.56.0.0/109" : { "score" : 1.24 } }, { "::198.64.0.0/106" : { "score" : 1.25 } }, { "::198.128.0.0/105" : { "score" : 1.26 } }, { "::199.0.0.0/104" : { "score" : 1.27 } }, { "::200.0.0.0/103" : { "score" : 1.28 } }, { "::202.0.0.0/104" : { "score" : 1.29 } }, { "::203.0.0.0/114" : { "score" : 1.3 } }, { "::203.0.64.0/115" : { "score" : 1.31 } }, { "::203.0.96.0/116" : { "score" : 1.32 } }, { "::203.0.112.0/120" : { "score" : 1.33 } }, { "::203.0.114.0/119" : { "score" : 1.34 } }, { "::203.0.116.0/118" : { "score" : 1.35 } }, { "::203.0.120.0/117" : { "score" : 1.36 } }, { "::203.0.128.0/113" : { "score" : 1.37 } }, { "::203.1.0.0/112" : { "score" : 1.38 } }, { "::203.2.0.0/111" : { "score" : 1.39 } }, { "::203.4.0.0/110" : { "score" : 1.4 } }, { "::203.8.0.0/109" : { "score" : 1.41 } }, { "::203.16.0.0/108" : { "score" : 1.42 } }, { "::203.32.0.0/107" : { "score" : 1.43 } }, { "::203.64.0.0/106" : { "score" : 1.44 } }, { "::203.128.0.0/105" : { "score" : 1.45 } }, { "::204.0.0.0/102" : { "score" : 1.46 } }, { "::208.0.0.0/100" : { "score" : 1.47 } }, { "::214.2.3.0/126" : { "score" : 0.04 } }, { "::214.2.3.4/128" : { "score" : 0.05 } }, { "::214.2.3.5/128" : { "score" : 0.06 } }, { "::1:0:0:0/80" : { "score" : 1.48 } }, { "::2:0:0:0/79" : { "score" : 1.49 } }, { "::4:0:0:0/78" : { "score" : 1.5 } }, { "::8:0:0:0/77" : { "score" : 1.51 } }, { "::10:0:0:0/76" : { "score" : 1.52 } }, { "::20:0:0:0/75" : { "score" : 1.53 } }, { "::40:0:0:0/74" : { "score" : 1.54 } }, { "::80:0:0:0/73" : { "score" : 1.55 } }, { "::100:0:0:0/72" : { "score" : 1.56 } }, { "::200:0:0:0/71" : { "score" : 1.57 } }, { "::400:0:0:0/70" : { "score" : 1.58 } }, { "::800:0:0:0/69" : { "score" : 1.59 } }, { "::1000:0:0:0/68" : { "score" : 1.6 } }, { "::2000:0:0:0/67" : { "score" : 1.61 } }, { "::4000:0:0:0/66" : { "score" : 1.62 } }, { "::8000:0:0:0/65" : { "score" : 1.63 } }, { "0:0:0:1::/64" : { "score" : 1.64 } }, { "0:0:0:2::/63" : { "score" : 1.65 } }, { "0:0:0:4::/62" : { "score" : 1.66 } }, { "0:0:0:8::/61" : { "score" : 1.67 } }, { "0:0:0:10::/60" : { "score" : 1.68 } }, { "0:0:0:20::/59" : { "score" : 1.69 } }, { "0:0:0:40::/58" : { "score" : 1.7 } }, { "0:0:0:80::/57" : { "score" : 1.71 } }, { "0:0:0:100::/56" : { "score" : 1.72 } }, { "0:0:0:200::/55" : { "score" : 1.73 } }, { "0:0:0:400::/54" : { "score" : 1.74 } }, { "0:0:0:800::/53" : { "score" : 1.75 } }, { "0:0:0:1000::/52" : { "score" : 1.76 } }, { "0:0:0:2000::/51" : { "score" : 1.77 } }, { "0:0:0:4000::/50" : { "score" : 1.78 } }, { "0:0:0:8000::/49" : { "score" : 1.79 } }, { "0:0:1::/48" : { "score" : 1.8 } }, { "0:0:2::/47" : { "score" : 1.81 } }, { "0:0:4::/46" : { "score" : 1.82 } }, { "0:0:8::/45" : { "score" : 1.83 } }, { "0:0:10::/44" : { "score" : 1.84 } }, { "0:0:20::/43" : { "score" : 1.85 } }, { "0:0:40::/42" : { "score" : 1.86 } }, { "0:0:80::/41" : { "score" : 1.87 } }, { "0:0:100::/40" : { "score" : 1.88 } }, { "0:0:200::/39" : { "score" : 1.89 } }, { "0:0:400::/38" : { "score" : 1.9 } }, { "0:0:800::/37" : { "score" : 1.91 } }, { "0:0:1000::/36" : { "score" : 1.92 } }, { "0:0:2000::/35" : { "score" : 1.93 } }, { "0:0:4000::/34" : { "score" : 1.94 } }, { "0:0:8000::/33" : { "score" : 1.95 } }, { "0:1::/32" : { "score" : 1.96 } }, { "0:2::/31" : { "score" : 1.97 } }, { "0:4::/30" : { "score" : 1.98 } }, { "0:8::/29" : { "score" : 1.99 } }, { "0:10::/28" : { "score" : 2.0 } }, { "0:20::/27" : { "score" : 2.01 } }, { "0:40::/26" : { "score" : 2.02 } }, { "0:80::/25" : { "score" : 2.03 } }, { "0:100::/24" : { "score" : 2.04 } }, { "0:200::/23" : { "score" : 2.05 } }, { "0:400::/22" : { "score" : 2.06 } }, { "0:800::/21" : { "score" : 2.07 } }, { "0:1000::/20" : { "score" : 2.08 } }, { "0:2000::/19" : { "score" : 2.09 } }, { "0:4000::/18" : { "score" : 2.1 } }, { "0:8000::/17" : { "score" : 2.11 } }, { "1::/16" : { "score" : 2.12 } }, { "2::/15" : { "score" : 2.13 } }, { "4::/14" : { "score" : 2.14 } }, { "8::/13" : { "score" : 2.15 } }, { "10::/12" : { "score" : 2.16 } }, { "20::/11" : { "score" : 2.17 } }, { "40::/10" : { "score" : 2.18 } }, { "80::/9" : { "score" : 2.19 } }, { "100:0:0:1::/64" : { "score" : 2.2 } }, { "100:0:0:2::/63" : { "score" : 2.21 } }, { "100:0:0:4::/62" : { "score" : 2.22 } }, { "100:0:0:8::/61" : { "score" : 2.23 } }, { "100:0:0:10::/60" : { "score" : 2.24 } }, { "100:0:0:20::/59" : { "score" : 2.25 } }, { "100:0:0:40::/58" : { "score" : 2.26 } }, { "100:0:0:80::/57" : { "score" : 2.27 } }, { "100:0:0:100::/56" : { "score" : 2.28 } }, { "100:0:0:200::/55" : { "score" : 2.29 } }, { "100:0:0:400::/54" : { "score" : 2.3 } }, { "100:0:0:800::/53" : { "score" : 2.31 } }, { "100:0:0:1000::/52" : { "score" : 2.32 } }, { "100:0:0:2000::/51" : { "score" : 2.33 } }, { "100:0:0:4000::/50" : { "score" : 2.34 } }, { "100:0:0:8000::/49" : { "score" : 2.35 } }, { "100:0:1::/48" : { "score" : 2.36 } }, { "100:0:2::/47" : { "score" : 2.37 } }, { "100:0:4::/46" : { "score" : 2.38 } }, { "100:0:8::/45" : { "score" : 2.39 } }, { "100:0:10::/44" : { "score" : 2.4 } }, { "100:0:20::/43" : { "score" : 2.41 } }, { "100:0:40::/42" : { "score" : 2.42 } }, { "100:0:80::/41" : { "score" : 2.43 } }, { "100:0:100::/40" : { "score" : 2.44 } }, { "100:0:200::/39" : { "score" : 2.45 } }, { "100:0:400::/38" : { "score" : 2.46 } }, { "100:0:800::/37" : { "score" : 2.47 } }, { "100:0:1000::/36" : { "score" : 2.48 } }, { "100:0:2000::/35" : { "score" : 2.49 } }, { "100:0:4000::/34" : { "score" : 2.5 } }, { "100:0:8000::/33" : { "score" : 2.51 } }, { "100:1::/32" : { "score" : 2.52 } }, { "100:2::/31" : { "score" : 2.53 } }, { "100:4::/30" : { "score" : 2.54 } }, { "100:8::/29" : { "score" : 2.55 } }, { "100:10::/28" : { "score" : 2.56 } }, { "100:20::/27" : { "score" : 2.57 } }, { "100:40::/26" : { "score" : 2.58 } }, { "100:80::/25" : { "score" : 2.59 } }, { "100:100::/24" : { "score" : 2.6 } }, { "100:200::/23" : { "score" : 2.61 } }, { "100:400::/22" : { "score" : 2.62 } }, { "100:800::/21" : { "score" : 2.63 } }, { "100:1000::/20" : { "score" : 2.64 } }, { "100:2000::/19" : { "score" : 2.65 } }, { "100:4000::/18" : { "score" : 2.66 } }, { "100:8000::/17" : { "score" : 2.67 } }, { "101::/16" : { "score" : 2.68 } }, { "102::/15" : { "score" : 2.69 } }, { "104::/14" : { "score" : 2.7 } }, { "108::/13" : { "score" : 2.71 } }, { "110::/12" : { "score" : 2.72 } }, { "120::/11" : { "score" : 2.73 } }, { "140::/10" : { "score" : 2.74 } }, { "180::/9" : { "score" : 2.75 } }, { "200::/7" : { "score" : 2.76 } }, { "400::/6" : { "score" : 2.77 } }, { "800::/5" : { "score" : 2.78 } }, { "1000::/4" : { "score" : 2.79 } }, { "2000::/16" : { "score" : 2.8 } }, { "2001:200::/23" : { "score" : 2.81 } }, { "2001:220::/128" : { "score" : 2.82 } }, { "2001:400::/22" : { "score" : 2.83 } }, { "2001:800::/22" : { "score" : 2.84 } }, { "2001:c00::/24" : { "score" : 2.85 } }, { "2001:d00::/25" : { "score" : 2.86 } }, { "2001:d80::/27" : { "score" : 2.87 } }, { "2001:da0::/28" : { "score" : 2.88 } }, { "2001:db0::/29" : { "score" : 2.89 } }, { "2001:db9::/32" : { "score" : 2.9 } }, { "2001:dba::/31" : { "score" : 2.91 } }, { "2001:dbc::/30" : { "score" : 2.92 } }, { "2001:dc0::/26" : { "score" : 2.93 } }, { "2001:e00::/23" : { "score" : 2.94 } }, { "2001:1000::/20" : { "score" : 2.95 } }, { "2001:2000::/19" : { "score" : 2.96 } }, { "2001:4000::/18" : { "score" : 2.97 } }, { "2001:8000::/18" : { "score" : 2.98 } }, { "2001:c000::/19" : { "score" : 2.99 } }, { "2001:e000::/21" : { "score" : 3.0 } }, { "2001:e800::/22" : { "score" : 3.01 } }, { "2001:ec00::/24" : { "score" : 3.02 } }, { "2001:ed00::/25" : { "score" : 3.03 } }, { "2001:ed80::/27" : { "score" : 3.04 } }, { "2001:eda0::/28" : { "score" : 3.05 } }, { "2001:edb0::/29" : { "score" : 3.06 } }, { "2001:edb8::/48" : { "score" : 3.07 } }, { "2001:edb8:1::/64" : { "score" : 3.08 } }, { "2001:edb8:1:1::/64" : { "score" : 3.09 } }, { "2001:edb8:1:2::/63" : { "score" : 3.1 } }, { "2001:edb8:1:4::/62" : { "score" : 3.11 } }, { "2001:edb8:1:8::/61" : { "score" : 3.12 } }, { "2001:edb8:1:10::/60" : { "score" : 3.13 } }, { "2001:edb8:1:20::/59" : { "score" : 3.14 } }, { "2001:edb8:1:40::/58" : { "score" : 3.15 } }, { "2001:edb8:1:80::/57" : { "score" : 3.16 } }, { "2001:edb8:1:100::/56" : { "score" : 3.17 } }, { "2001:edb8:1:200::/55" : { "score" : 3.18 } }, { "2001:edb8:1:400::/54" : { "score" : 3.19 } }, { "2001:edb8:1:800::/53" : { "score" : 3.2 } }, { "2001:edb8:1:1000::/52" : { "score" : 3.21 } }, { "2001:edb8:1:2000::/51" : { "score" : 3.22 } }, { "2001:edb8:1:4000::/50" : { "score" : 3.23 } }, { "2001:edb8:1:8000::/49" : { "score" : 3.24 } }, { "2001:edb8:2::/47" : { "score" : 3.25 } }, { "2001:edb8:4::/46" : { "score" : 3.26 } }, { "2001:edb8:8::/45" : { "score" : 3.27 } }, { "2001:edb8:10::/44" : { "score" : 3.28 } }, { "2001:edb8:20::/43" : { "score" : 3.29 } }, { "2001:edb8:40::/42" : { "score" : 3.3 } }, { "2001:edb8:80::/41" : { "score" : 3.31 } }, { "2001:edb8:100::/40" : { "score" : 3.32 } }, { "2001:edb8:200::/39" : { "score" : 3.33 } }, { "2001:edb8:400::/38" : { "score" : 3.34 } }, { "2001:edb8:800::/37" : { "score" : 3.35 } }, { "2001:edb8:1000::/36" : { "score" : 3.36 } }, { "2001:edb8:2000::/35" : { "score" : 3.37 } }, { "2001:edb8:4000::/34" : { "score" : 3.38 } }, { "2001:edb8:8000::/38" : { "score" : 3.39 } }, { "2001:edb8:8400::/40" : { "score" : 3.4 } }, { "2001:edb8:8500::/41" : { "score" : 3.41 } }, { "2001:edb8:8580::/43" : { "score" : 3.42 } }, { "2001:edb8:85a0::/47" : { "score" : 3.43 } }, { "2001:edb8:85a2::/48" : { "score" : 3.44 } }, { "2001:edb8:85a3::/64" : { "score" : 3.45 } }, { "2001:edb8:85a3:1::/64" : { "score" : 3.46 } }, { "2001:edb8:85a3:2::/63" : { "score" : 3.47 } }, { "2001:edb8:85a3:4::/62" : { "score" : 3.48 } }, { "2001:edb8:85a3:8::/61" : { "score" : 3.49 } }, { "2001:edb8:85a3:10::/60" : { "score" : 3.5 } }, { "2001:edb8:85a3:20::/59" : { "score" : 3.51 } }, { "2001:edb8:85a3:40::/58" : { "score" : 3.52 } }, { "2001:edb8:85a3:80::/57" : { "score" : 3.53 } }, { "2001:edb8:85a3:100::/56" : { "score" : 3.54 } }, { "2001:edb8:85a3:200::/55" : { "score" : 3.55 } }, { "2001:edb8:85a3:400::/54" : { "score" : 3.56 } }, { "2001:edb8:85a3:800::/53" : { "score" : 3.57 } }, { "2001:edb8:85a3:1000::/52" : { "score" : 3.58 } }, { "2001:edb8:85a3:2000::/51" : { "score" : 3.59 } }, { "2001:edb8:85a3:4000::/50" : { "score" : 3.6 } }, { "2001:edb8:85a3:8000::/49" : { "score" : 3.61 } }, { "2001:edb8:85a4::/46" : { "score" : 3.62 } }, { "2001:edb8:85a8::/45" : { "score" : 3.63 } }, { "2001:edb8:85b0::/44" : { "score" : 3.64 } }, { "2001:edb8:85c0::/42" : { "score" : 3.65 } }, { "2001:edb8:8600::/39" : { "score" : 3.66 } }, { "2001:edb8:8800::/37" : { "score" : 3.67 } }, { "2001:edb8:9000::/36" : { "score" : 3.68 } }, { "2001:edb8:a000::/35" : { "score" : 3.69 } }, { "2001:edb8:c000::/36" : { "score" : 3.7 } }, { "2001:edb8:d000::/37" : { "score" : 3.71 } }, { "2001:edb8:d800::/38" : { "score" : 3.72 } }, { "2001:edb8:dc00::/39" : { "score" : 3.73 } }, { "2001:edb8:de00::/41" : { "score" : 3.74 } }, { "2001:edb8:de80::/43" : { "score" : 3.75 } }, { "2001:edb8:dea0::/45" : { "score" : 3.76 } }, { "2001:edb8:dea8::/46" : { "score" : 3.77 } }, { "2001:edb8:deac::/48" : { "score" : 3.78 } }, { "2001:edb8:dead::/49" : { "score" : 3.79 } }, { "2001:edb8:dead:8000::/50" : { "score" : 3.8 } }, { "2001:edb8:dead:c000::/52" : { "score" : 3.81 } }, { "2001:edb8:dead:d000::/53" : { "score" : 3.82 } }, { "2001:edb8:dead:d800::/54" : { "score" : 3.83 } }, { "2001:edb8:dead:dc00::/55" : { "score" : 3.84 } }, { "2001:edb8:dead:de00::/57" : { "score" : 3.85 } }, { "2001:edb8:dead:de80::/59" : { "score" : 3.86 } }, { "2001:edb8:dead:dea0::/61" : { "score" : 3.87 } }, { "2001:edb8:dead:dea8::/62" : { "score" : 3.88 } }, { "2001:edb8:dead:deac::/64" : { "score" : 3.89 } }, { "2001:edb8:dead:dead::/64" : { "score" : 3.9 } }, { "2001:edb8:dead:deae::/63" : { "score" : 3.91 } }, { "2001:edb8:dead:deb0::/60" : { "score" : 3.92 } }, { "2001:edb8:dead:dec0::/58" : { "score" : 3.93 } }, { "2001:edb8:dead:df00::/56" : { "score" : 3.94 } }, { "2001:edb8:dead:e000::/51" : { "score" : 3.95 } }, { "2001:edb8:deae::/47" : { "score" : 3.96 } }, { "2001:edb8:deb0::/44" : { "score" : 3.97 } }, { "2001:edb8:dec0::/42" : { "score" : 3.98 } }, { "2001:edb8:df00::/40" : { "score" : 3.99 } }, { "2001:edb8:e000::/35" : { "score" : 4.0 } }, { "2001:edb9::/32" : { "score" : 4.01 } }, { "2001:edba::/31" : { "score" : 4.02 } }, { "2001:edbc::/30" : { "score" : 4.03 } }, { "2001:edc0::/26" : { "score" : 4.04 } }, { "2001:ee00::/23" : { "score" : 4.05 } }, { "2001:f000::/20" : { "score" : 4.06 } }, { "2003::/16" : { "score" : 4.07 } }, { "2004::/14" : { "score" : 4.08 } }, { "2008::/13" : { "score" : 4.09 } }, { "2010::/12" : { "score" : 4.1 } }, { "2020::/11" : { "score" : 4.11 } }, { "2040::/10" : { "score" : 4.12 } }, { "2080::/9" : { "score" : 4.13 } }, { "2100::/8" : { "score" : 4.14 } }, { "2200::/7" : { "score" : 4.15 } }, { "2400::/6" : { "score" : 4.16 } }, { "2800::/5" : { "score" : 4.17 } }, { "3000::/4" : { "score" : 4.18 } }, { "4000::/2" : { "score" : 4.19 } }, { "8000::/2" : { "score" : 4.2 } }, { "c000::/3" : { "score" : 4.21 } }, { "e000::/4" : { "score" : 4.22 } }, { "f000::/5" : { "score" : 4.23 } }, { "f800::/6" : { "score" : 4.24 } }, { "fe00::/9" : { "score" : 4.25 } }, { "fec0::/10" : { "score" : 4.26 } } ] golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/source-data/GeoIP2-User-Count-Test.json000066400000000000000000001336041507532544400325510ustar00rootroot00000000000000[ { "::1.0.0.0/111" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::1.2.0.0/119" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::1.2.2.0/120" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::1.2.3.0/126" : { "ipv4_24" : 4, "ipv4_32" : 0 } }, { "::1.2.3.4/128" : { "ipv4_24" : 4, "ipv4_32" : 3 } }, { "::1.2.3.5/128" : { "ipv4_24" : 4, "ipv4_32" : 1 } }, { "::1.2.3.6/128" : { "ipv4_24" : 4, "ipv4_32" : 1 } }, { "::1.2.3.7/128" : { "ipv4_24" : 4, "ipv4_32" : 0 } }, { "::1.2.3.8/125" : { "ipv4_24" : 4, "ipv4_32" : 0 } }, { "::1.2.3.16/124" : { "ipv4_24" : 4, "ipv4_32" : 0 } }, { "::1.2.3.32/123" : { "ipv4_24" : 4, "ipv4_32" : 0 } }, { "::1.2.3.64/122" : { "ipv4_24" : 4, "ipv4_32" : 0 } }, { "::1.2.3.128/121" : { "ipv4_24" : 4, "ipv4_32" : 0 } }, { "::1.2.4.0/118" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::1.2.8.0/117" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::1.2.16.0/116" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::1.2.32.0/115" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::1.2.64.0/114" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::1.2.128.0/113" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::1.3.0.0/112" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::1.4.0.0/110" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::1.8.0.0/109" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::1.16.0.0/108" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::1.32.0.0/107" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::1.64.0.0/106" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::1.128.0.0/105" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::2.0.0.0/103" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::4.0.0.0/102" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::8.0.0.0/103" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::11.0.0.0/104" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::12.0.0.0/102" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::16.0.0.0/100" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::32.0.0.0/99" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::64.0.0.0/99" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::75.209.24.0/128" : { "ipv4_24" : 1, "ipv4_32" : 1 } }, { "::96.0.0.0/102" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::100.0.0.0/106" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::100.128.0.0/105" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::101.0.0.0/104" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::102.0.0.0/103" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::104.0.0.0/101" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::112.0.0.0/101" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::120.0.0.0/102" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::124.0.0.0/103" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::126.0.0.0/104" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::128.0.0.0/99" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::160.0.0.0/101" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::168.0.0.0/104" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::169.0.0.0/105" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::169.128.0.0/106" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::169.192.0.0/107" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::169.224.0.0/108" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::169.240.0.0/109" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::169.248.0.0/110" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::169.252.0.0/111" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::169.255.0.0/112" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::170.0.0.0/103" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::172.0.0.0/108" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::172.32.0.0/107" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::172.64.0.0/106" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::172.128.0.0/105" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::173.0.0.0/104" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::174.0.0.0/103" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::176.0.0.0/100" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.0.0.8/125" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.0.0.16/124" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.0.0.32/123" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.0.0.64/122" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.0.0.128/121" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.0.1.0/120" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.0.3.0/120" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.0.4.0/118" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.0.8.0/117" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.0.16.0/116" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.0.32.0/115" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.0.64.0/114" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.0.128.0/113" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.1.0.0/112" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.2.0.0/111" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.4.0.0/110" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.8.0.0/109" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.16.0.0/108" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.32.0.0/107" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.64.0.0/108" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.80.0.0/109" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.88.0.0/114" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.88.64.0/115" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.88.96.0/119" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.88.98.0/120" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.88.100.0/118" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.88.104.0/117" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.88.112.0/116" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.88.128.0/113" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.89.0.0/112" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.90.0.0/111" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.92.0.0/110" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.96.0.0/107" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.128.0.0/107" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.160.0.0/109" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.169.0.0/112" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.170.0.0/111" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.172.0.0/110" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.176.0.0/108" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::192.192.0.0/106" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::193.0.0.0/104" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::194.0.0.0/103" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::196.0.0.0/103" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.0.0.0/108" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.16.0.0/111" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.20.0.0/110" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.24.0.0/109" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.32.0.0/108" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.48.0.0/111" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.50.0.0/112" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.51.0.0/114" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.51.64.0/115" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.51.96.0/118" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.51.101.0/120" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.51.102.0/119" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.51.104.0/117" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.51.112.0/116" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.51.128.0/113" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.52.0.0/110" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.56.0.0/109" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.64.0.0/106" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::198.128.0.0/105" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::199.0.0.0/104" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::200.0.0.0/103" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::202.0.0.0/104" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::203.0.0.0/114" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::203.0.64.0/115" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::203.0.96.0/116" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::203.0.112.0/120" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::203.0.114.0/119" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::203.0.116.0/118" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::203.0.120.0/117" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::203.0.128.0/113" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::203.1.0.0/112" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::203.2.0.0/111" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::203.4.0.0/110" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::203.8.0.0/109" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::203.16.0.0/108" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::203.32.0.0/107" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::203.64.0.0/106" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::203.128.0.0/105" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::204.0.0.0/102" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::208.0.0.0/100" : { "ipv4_24" : 0, "ipv4_32" : 0 } }, { "::214.2.3.0/126" : { "ipv4_24" : 4, "ipv4_32" : 0 } }, { "::214.2.3.4/128" : { "ipv4_24" : 4, "ipv4_32" : 3 } }, { "::214.2.3.5/128" : { "ipv4_24" : 4, "ipv4_32" : 1 } }, { "::1:0:0:0/80" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "::2:0:0:0/79" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "::4:0:0:0/78" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "::8:0:0:0/77" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "::10:0:0:0/76" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "::20:0:0:0/75" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "::40:0:0:0/74" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "::80:0:0:0/73" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "::100:0:0:0/72" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "::200:0:0:0/71" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "::400:0:0:0/70" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "::800:0:0:0/69" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "::1000:0:0:0/68" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "::2000:0:0:0/67" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "::4000:0:0:0/66" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "::8000:0:0:0/65" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:0:1::/64" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:0:2::/63" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:0:4::/62" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:0:8::/61" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:0:10::/60" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:0:20::/59" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:0:40::/58" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:0:80::/57" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:0:100::/56" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:0:200::/55" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:0:400::/54" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:0:800::/53" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:0:1000::/52" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:0:2000::/51" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:0:4000::/50" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:0:8000::/49" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:1::/48" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:2::/47" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:4::/46" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:8::/45" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:10::/44" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:20::/43" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:40::/42" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:80::/41" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:100::/40" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:200::/39" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:400::/38" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:800::/37" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:1000::/36" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:2000::/35" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:4000::/34" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:0:8000::/33" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:1::/32" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:2::/31" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:4::/30" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:8::/29" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:10::/28" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:20::/27" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:40::/26" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:80::/25" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:100::/24" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:200::/23" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:400::/22" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:800::/21" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:1000::/20" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:2000::/19" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:4000::/18" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "0:8000::/17" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "1::/16" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2::/15" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "4::/14" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "8::/13" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "10::/12" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "20::/11" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "40::/10" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "80::/9" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:0:1::/64" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:0:2::/63" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:0:4::/62" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:0:8::/61" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:0:10::/60" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:0:20::/59" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:0:40::/58" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:0:80::/57" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:0:100::/56" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:0:200::/55" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:0:400::/54" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:0:800::/53" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:0:1000::/52" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:0:2000::/51" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:0:4000::/50" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:0:8000::/49" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:1::/48" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:2::/47" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:4::/46" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:8::/45" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:10::/44" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:20::/43" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:40::/42" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:80::/41" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:100::/40" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:200::/39" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:400::/38" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:800::/37" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:1000::/36" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:2000::/35" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:4000::/34" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:0:8000::/33" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:1::/32" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:2::/31" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:4::/30" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:8::/29" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:10::/28" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:20::/27" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:40::/26" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:80::/25" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:100::/24" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:200::/23" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:400::/22" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:800::/21" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:1000::/20" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:2000::/19" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:4000::/18" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "100:8000::/17" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "101::/16" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "102::/15" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "104::/14" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "108::/13" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "110::/12" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "120::/11" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "140::/10" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "180::/9" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "200::/7" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "400::/6" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "800::/5" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "1000::/4" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2000::/16" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:200::/23" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:220::/128" : { "ipv6_32" : 1, "ipv6_48" : 1, "ipv6_64" : 1 } }, { "2001:400::/22" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:800::/22" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:c00::/24" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:d00::/25" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:d80::/27" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:da0::/28" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:db0::/29" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:db9::/32" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:dba::/31" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:dbc::/30" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:dc0::/26" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:e00::/23" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:1000::/20" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:2000::/19" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:4000::/18" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:8000::/18" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:c000::/19" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:e000::/21" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:e800::/22" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:ec00::/24" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:ed00::/25" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:ed80::/27" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:eda0::/28" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb0::/29" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8::/48" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:1::/64" : { "ipv6_32" : 5, "ipv6_48" : 1, "ipv6_64" : 1 } }, { "2001:edb8:1:1::/64" : { "ipv6_32" : 5, "ipv6_48" : 1, "ipv6_64" : 0 } }, { "2001:edb8:1:2::/63" : { "ipv6_32" : 5, "ipv6_48" : 1, "ipv6_64" : 0 } }, { "2001:edb8:1:4::/62" : { "ipv6_32" : 5, "ipv6_48" : 1, "ipv6_64" : 0 } }, { "2001:edb8:1:8::/61" : { "ipv6_32" : 5, "ipv6_48" : 1, "ipv6_64" : 0 } }, { "2001:edb8:1:10::/60" : { "ipv6_32" : 5, "ipv6_48" : 1, "ipv6_64" : 0 } }, { "2001:edb8:1:20::/59" : { "ipv6_32" : 5, "ipv6_48" : 1, "ipv6_64" : 0 } }, { "2001:edb8:1:40::/58" : { "ipv6_32" : 5, "ipv6_48" : 1, "ipv6_64" : 0 } }, { "2001:edb8:1:80::/57" : { "ipv6_32" : 5, "ipv6_48" : 1, "ipv6_64" : 0 } }, { "2001:edb8:1:100::/56" : { "ipv6_32" : 5, "ipv6_48" : 1, "ipv6_64" : 0 } }, { "2001:edb8:1:200::/55" : { "ipv6_32" : 5, "ipv6_48" : 1, "ipv6_64" : 0 } }, { "2001:edb8:1:400::/54" : { "ipv6_32" : 5, "ipv6_48" : 1, "ipv6_64" : 0 } }, { "2001:edb8:1:800::/53" : { "ipv6_32" : 5, "ipv6_48" : 1, "ipv6_64" : 0 } }, { "2001:edb8:1:1000::/52" : { "ipv6_32" : 5, "ipv6_48" : 1, "ipv6_64" : 0 } }, { "2001:edb8:1:2000::/51" : { "ipv6_32" : 5, "ipv6_48" : 1, "ipv6_64" : 0 } }, { "2001:edb8:1:4000::/50" : { "ipv6_32" : 5, "ipv6_48" : 1, "ipv6_64" : 0 } }, { "2001:edb8:1:8000::/49" : { "ipv6_32" : 5, "ipv6_48" : 1, "ipv6_64" : 0 } }, { "2001:edb8:2::/47" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:4::/46" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:8::/45" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:10::/44" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:20::/43" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:40::/42" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:80::/41" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:100::/40" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:200::/39" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:400::/38" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:800::/37" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:1000::/36" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:2000::/35" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:4000::/34" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:8000::/38" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:8400::/40" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:8500::/41" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:8580::/43" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:85a0::/47" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:85a2::/48" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:85a3::/64" : { "ipv6_32" : 5, "ipv6_48" : 4, "ipv6_64" : 3 } }, { "2001:edb8:85a3:1::/64" : { "ipv6_32" : 5, "ipv6_48" : 4, "ipv6_64" : 2 } }, { "2001:edb8:85a3:2::/63" : { "ipv6_32" : 5, "ipv6_48" : 4, "ipv6_64" : 0 } }, { "2001:edb8:85a3:4::/62" : { "ipv6_32" : 5, "ipv6_48" : 4, "ipv6_64" : 0 } }, { "2001:edb8:85a3:8::/61" : { "ipv6_32" : 5, "ipv6_48" : 4, "ipv6_64" : 0 } }, { "2001:edb8:85a3:10::/60" : { "ipv6_32" : 5, "ipv6_48" : 4, "ipv6_64" : 0 } }, { "2001:edb8:85a3:20::/59" : { "ipv6_32" : 5, "ipv6_48" : 4, "ipv6_64" : 0 } }, { "2001:edb8:85a3:40::/58" : { "ipv6_32" : 5, "ipv6_48" : 4, "ipv6_64" : 0 } }, { "2001:edb8:85a3:80::/57" : { "ipv6_32" : 5, "ipv6_48" : 4, "ipv6_64" : 0 } }, { "2001:edb8:85a3:100::/56" : { "ipv6_32" : 5, "ipv6_48" : 4, "ipv6_64" : 0 } }, { "2001:edb8:85a3:200::/55" : { "ipv6_32" : 5, "ipv6_48" : 4, "ipv6_64" : 0 } }, { "2001:edb8:85a3:400::/54" : { "ipv6_32" : 5, "ipv6_48" : 4, "ipv6_64" : 0 } }, { "2001:edb8:85a3:800::/53" : { "ipv6_32" : 5, "ipv6_48" : 4, "ipv6_64" : 0 } }, { "2001:edb8:85a3:1000::/52" : { "ipv6_32" : 5, "ipv6_48" : 4, "ipv6_64" : 0 } }, { "2001:edb8:85a3:2000::/51" : { "ipv6_32" : 5, "ipv6_48" : 4, "ipv6_64" : 0 } }, { "2001:edb8:85a3:4000::/50" : { "ipv6_32" : 5, "ipv6_48" : 4, "ipv6_64" : 0 } }, { "2001:edb8:85a3:8000::/49" : { "ipv6_32" : 5, "ipv6_48" : 4, "ipv6_64" : 0 } }, { "2001:edb8:85a4::/46" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:85a8::/45" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:85b0::/44" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:85c0::/42" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:8600::/39" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:8800::/37" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:9000::/36" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:a000::/35" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:c000::/36" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:d000::/37" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:d800::/38" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:dc00::/39" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:de00::/41" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:de80::/43" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:dea0::/45" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:dea8::/46" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:deac::/48" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:dead::/49" : { "ipv6_32" : 5, "ipv6_48" : 2, "ipv6_64" : 0 } }, { "2001:edb8:dead:8000::/50" : { "ipv6_32" : 5, "ipv6_48" : 2, "ipv6_64" : 0 } }, { "2001:edb8:dead:c000::/52" : { "ipv6_32" : 5, "ipv6_48" : 2, "ipv6_64" : 0 } }, { "2001:edb8:dead:d000::/53" : { "ipv6_32" : 5, "ipv6_48" : 2, "ipv6_64" : 0 } }, { "2001:edb8:dead:d800::/54" : { "ipv6_32" : 5, "ipv6_48" : 2, "ipv6_64" : 0 } }, { "2001:edb8:dead:dc00::/55" : { "ipv6_32" : 5, "ipv6_48" : 2, "ipv6_64" : 0 } }, { "2001:edb8:dead:de00::/57" : { "ipv6_32" : 5, "ipv6_48" : 2, "ipv6_64" : 0 } }, { "2001:edb8:dead:de80::/59" : { "ipv6_32" : 5, "ipv6_48" : 2, "ipv6_64" : 0 } }, { "2001:edb8:dead:dea0::/61" : { "ipv6_32" : 5, "ipv6_48" : 2, "ipv6_64" : 0 } }, { "2001:edb8:dead:dea8::/62" : { "ipv6_32" : 5, "ipv6_48" : 2, "ipv6_64" : 0 } }, { "2001:edb8:dead:deac::/64" : { "ipv6_32" : 5, "ipv6_48" : 2, "ipv6_64" : 0 } }, { "2001:edb8:dead:dead::/64" : { "ipv6_32" : 5, "ipv6_48" : 2, "ipv6_64" : 2 } }, { "2001:edb8:dead:deae::/63" : { "ipv6_32" : 5, "ipv6_48" : 2, "ipv6_64" : 0 } }, { "2001:edb8:dead:deb0::/60" : { "ipv6_32" : 5, "ipv6_48" : 2, "ipv6_64" : 0 } }, { "2001:edb8:dead:dec0::/58" : { "ipv6_32" : 5, "ipv6_48" : 2, "ipv6_64" : 0 } }, { "2001:edb8:dead:df00::/56" : { "ipv6_32" : 5, "ipv6_48" : 2, "ipv6_64" : 0 } }, { "2001:edb8:dead:e000::/51" : { "ipv6_32" : 5, "ipv6_48" : 2, "ipv6_64" : 0 } }, { "2001:edb8:deae::/47" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:deb0::/44" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:dec0::/42" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:df00::/40" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb8:e000::/35" : { "ipv6_32" : 5, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edb9::/32" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edba::/31" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edbc::/30" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:edc0::/26" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:ee00::/23" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2001:f000::/20" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2003::/16" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2004::/14" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2008::/13" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2010::/12" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2020::/11" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2040::/10" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2080::/9" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2100::/8" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2200::/7" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2400::/6" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "2800::/5" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "3000::/4" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "4000::/2" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "8000::/2" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "c000::/3" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "e000::/4" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "f000::/5" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "f800::/6" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "fe00::/9" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } }, { "fec0::/10" : { "ipv6_32" : 0, "ipv6_48" : 0, "ipv6_64" : 0 } } ] golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/source-data/GeoLite2-ASN-Test.json000066400000000000000000003016111507532544400315460ustar00rootroot00000000000000[ { "1.0.0.0/24" : { "autonomous_system_number" : 15169, "autonomous_system_organization" : "Google Inc." } }, { "1.128.0.0/11" : { "autonomous_system_number" : 1221, "autonomous_system_organization" : "Telstra Pty Ltd" } }, { "12.81.92.0/22" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services" } }, { "12.81.96.0/19" : { "autonomous_system_number" : 7018 } }, { "12.81.128.0/17" : { "autonomous_system_number" : 7018 } }, { "12.82.0.0/15" : { "autonomous_system_number" : 7018 } }, { "12.84.0.0/15" : { "autonomous_system_number" : 7018 } }, { "12.86.0.0/16" : { "autonomous_system_number" : 7018 } }, { "12.87.0.0/18" : { "autonomous_system_number" : 7018 } }, { "12.87.64.0/19" : { "autonomous_system_number" : 7018 } }, { "12.87.96.0/20" : { "autonomous_system_number" : 7018 } }, { "12.87.112.0/22" : { "autonomous_system_number" : 7018 } }, { "12.87.116.0/23" : { "autonomous_system_number" : 7018 } }, { "12.87.118.0/23" : { "autonomous_system_number" : 7018 } }, { "12.87.120.0/21" : { "autonomous_system_number" : 7018 } }, { "12.87.128.0/17" : { "autonomous_system_number" : 7018 } }, { "12.88.0.0/13" : { "autonomous_system_number" : 7018 } }, { "12.96.0.0/20" : { "autonomous_system_number" : 7018 } }, { "12.96.16.0/24" : { "autonomous_system_number" : 7018 } }, { "15.0.0.0/8" : { "autonomous_system_number" : 71, "autonomous_system_organization" : "Hewlett-Packard Company" } }, { "16.0.0.0/8" : { "autonomous_system_number" : 71, "autonomous_system_organization" : "Hewlett-Packard Company" } }, { "18.0.0.0/8" : { "autonomous_system_number" : 3, "autonomous_system_organization" : "Massachusetts Institute of Technology" } }, { "23.32.0.0/11" : { "autonomous_system_number" : 35994, "autonomous_system_organization" : "Akamai Technologies, Inc." } }, { "23.192.0.0/11" : { "autonomous_system_number" : 35994, "autonomous_system_organization" : "Akamai Technologies, Inc." } }, { "27.192.0.0/11" : { "autonomous_system_number" : 4837, "autonomous_system_organization" : "CNCGROUP China169 Backbone" } }, { "31.64.0.0/10" : { "autonomous_system_number" : 12576, "autonomous_system_organization" : "Orange Personal Communications Services" } }, { "31.224.0.0/11" : { "autonomous_system_number" : 3320, "autonomous_system_organization" : "Deutsche Telekom AG" } }, { "35.0.0.0/9" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "35.128.0.0/11" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "36.192.0.0/11" : { "autonomous_system_number" : 9394, "autonomous_system_organization" : "China TieTong Telecommunications Corporation" } }, { "38.0.0.0/10" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.64.0.0/13" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.72.0.0/16" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.73.0.0/17" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.73.128.0/23" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.73.130.0/24" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.73.131.0/24" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.73.132.0/23" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.73.134.0/23" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.73.136.0/21" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.73.144.0/20" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.73.160.0/19" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.73.192.0/18" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.74.0.0/15" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.76.0.0/14" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.80.0.0/12" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.96.0.0/13" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.104.0.0/16" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.105.0.0/26" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.105.0.64/27" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.105.0.96/27" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.105.0.128/25" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.105.1.0/24" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.105.2.0/23" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.105.4.0/22" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.105.8.0/21" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.105.16.0/20" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.105.32.0/19" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.105.64.0/18" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.105.128.0/17" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.106.0.0/15" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.108.0.0/18" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.108.64.0/20" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.108.80.0/28" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.108.80.16/29" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.108.80.24/30" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.108.80.28/31" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.108.80.30/32" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.108.80.31/32" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.108.80.32/27" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.108.80.64/26" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.108.80.128/25" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.108.81.0/24" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.108.82.0/23" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.108.84.0/22" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.108.88.0/21" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.108.96.0/19" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.108.128.0/17" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.109.0.0/16" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.110.0.0/19" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.110.32.0/20" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.110.48.0/22" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.110.52.0/22" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.110.56.0/21" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.110.64.0/18" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.110.128.0/17" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.111.0.0/16" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.112.0.0/12" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "38.128.0.0/9" : { "autonomous_system_number" : 174, "autonomous_system_organization" : "Cogent Communications" } }, { "39.32.0.0/11" : { "autonomous_system_number" : 45595, "autonomous_system_organization" : "Pakistan Telecom Company Limited" } }, { "39.64.0.0/11" : { "autonomous_system_number" : 4837, "autonomous_system_organization" : "CNCGROUP China169 Backbone" } }, { "39.192.0.0/10" : { "autonomous_system_number" : 23693, "autonomous_system_organization" : "PT. Telekomunikasi Selular" } }, { "44.0.0.0/8" : { "autonomous_system_number" : 7377, "autonomous_system_organization" : "University of California at San Diego" } }, { "49.64.0.0/11" : { "autonomous_system_number" : 4134, "autonomous_system_organization" : "Chinanet" } }, { "50.128.0.0/9" : { "autonomous_system_number" : 7922, "autonomous_system_organization" : "Comcast Cable Communications, Inc." } }, { "53.0.0.0/8" : { "autonomous_system_number" : 31399, "autonomous_system_organization" : "Daimler Autonomous System" } }, { "55.0.0.0/8" : { "autonomous_system_number" : 721, "autonomous_system_organization" : "DoD Network Information Center" } }, { "57.0.0.0/8" : { "autonomous_system_number" : 2647, "autonomous_system_organization" : "SITA" } }, { "59.0.0.0/11" : { "autonomous_system_number" : 4766, "autonomous_system_organization" : "Korea Telecom" } }, { "60.64.0.0/10" : { "autonomous_system_number" : 17676, "autonomous_system_organization" : "Softbank BB Corp." } }, { "60.128.0.0/11" : { "autonomous_system_number" : 17676, "autonomous_system_organization" : "Softbank BB Corp." } }, { "64.17.248.0/22" : { "autonomous_system_number" : 33224 } }, { "64.17.252.0/23" : { "autonomous_system_number" : 33224 } }, { "64.17.254.0/25" : { "autonomous_system_number" : 33224 } }, { "64.17.254.128/26" : { "autonomous_system_number" : 33224 } }, { "64.17.254.192/28" : { "autonomous_system_number" : 33224 } }, { "64.17.254.208/29" : { "autonomous_system_number" : 33224 } }, { "64.17.254.216/29" : { "autonomous_system_number" : 33224 } }, { "64.17.254.224/27" : { "autonomous_system_number" : 33224 } }, { "64.17.255.0/24" : { "autonomous_system_number" : 33224 } }, { "65.23.96.0/20" : { "autonomous_system_number" : 11456 } }, { "65.23.112.0/21" : { "autonomous_system_number" : 11456 } }, { "65.23.120.0/24" : { "autonomous_system_number" : 11456 } }, { "65.23.121.0/25" : { "autonomous_system_number" : 11456 } }, { "65.23.121.128/26" : { "autonomous_system_number" : 11456 } }, { "65.23.121.192/28" : { "autonomous_system_number" : 11456 } }, { "65.23.121.208/29" : { "autonomous_system_number" : 11456 } }, { "65.23.121.216/30" : { "autonomous_system_number" : 11456 } }, { "65.23.121.220/32" : { "autonomous_system_number" : 11456 } }, { "65.23.121.221/32" : { "autonomous_system_number" : 11456 } }, { "65.23.121.222/31" : { "autonomous_system_number" : 11456 } }, { "65.23.121.224/27" : { "autonomous_system_number" : 11456 } }, { "65.23.122.0/23" : { "autonomous_system_number" : 11456 } }, { "65.23.124.0/22" : { "autonomous_system_number" : 11456 } }, { "65.115.241.0/24" : { "autonomous_system_number" : 209 } }, { "65.115.242.0/23" : { "autonomous_system_number" : 209 } }, { "65.115.244.0/22" : { "autonomous_system_number" : 209 } }, { "65.115.248.0/21" : { "autonomous_system_number" : 209 } }, { "65.116.0.0/23" : { "autonomous_system_number" : 209 } }, { "65.116.2.0/24" : { "autonomous_system_number" : 209 } }, { "65.116.3.0/26" : { "autonomous_system_number" : 209 } }, { "65.116.3.64/28" : { "autonomous_system_number" : 209 } }, { "65.116.3.80/31" : { "autonomous_system_number" : 209 } }, { "65.116.3.82/32" : { "autonomous_system_number" : 209 } }, { "65.116.3.83/32" : { "autonomous_system_number" : 209 } }, { "65.116.3.84/30" : { "autonomous_system_number" : 209 } }, { "65.116.3.88/29" : { "autonomous_system_number" : 209 } }, { "65.116.3.96/27" : { "autonomous_system_number" : 209 } }, { "65.116.3.128/25" : { "autonomous_system_number" : 209 } }, { "65.116.4.0/22" : { "autonomous_system_number" : 209 } }, { "65.116.8.0/22" : { "autonomous_system_number" : 209 } }, { "65.116.12.0/23" : { "autonomous_system_number" : 209 } }, { "65.128.0.0/11" : { "autonomous_system_number" : 209, "autonomous_system_organization" : "Qwest Communications Company, LLC" } }, { "65.192.0.0/11" : { "autonomous_system_number" : 701, "autonomous_system_organization" : "MCI Communications Services, Inc. d/b/a Verizon Business" } }, { "66.92.0.0/17" : { "autonomous_system_number" : 23504 } }, { "66.92.128.0/19" : { "autonomous_system_number" : 23504 } }, { "66.92.160.0/20" : { "autonomous_system_number" : 23504 } }, { "66.92.176.0/22" : { "autonomous_system_number" : 23504 } }, { "66.92.180.0/24" : { "autonomous_system_number" : 23504 } }, { "66.92.181.0/25" : { "autonomous_system_number" : 23504 } }, { "66.92.181.128/26" : { "autonomous_system_number" : 23504 } }, { "66.92.181.192/27" : { "autonomous_system_number" : 23504 } }, { "66.92.181.224/28" : { "autonomous_system_number" : 23504 } }, { "66.92.181.240/28" : { "autonomous_system_number" : 23504 } }, { "66.92.182.0/23" : { "autonomous_system_number" : 23504 } }, { "66.92.184.0/21" : { "autonomous_system_number" : 23504 } }, { "66.92.192.0/18" : { "autonomous_system_number" : 23504 } }, { "66.93.0.0/16" : { "autonomous_system_number" : 23504 } }, { "67.43.149.0/24" : { "autonomous_system_number" : 35908 } }, { "67.43.150.0/23" : { "autonomous_system_number" : 35908 } }, { "67.43.152.0/22" : { "autonomous_system_number" : 35908 } }, { "67.43.156.0/26" : { "autonomous_system_number" : 35908 } }, { "67.43.156.64/26" : { "autonomous_system_number" : 35908 } }, { "67.43.156.128/26" : { "autonomous_system_number" : 35908 } }, { "67.43.156.192/26" : { "autonomous_system_number" : 35908 } }, { "67.43.157.0/24" : { "autonomous_system_number" : 35908 } }, { "67.43.158.0/23" : { "autonomous_system_number" : 35908 } }, { "67.160.0.0/11" : { "autonomous_system_number" : 7922, "autonomous_system_organization" : "Comcast Cable Communications, Inc." } }, { "69.218.35.0/24" : { "autonomous_system_number" : 7132 } }, { "69.218.36.0/22" : { "autonomous_system_number" : 7132 } }, { "69.218.40.0/21" : { "autonomous_system_number" : 7132 } }, { "69.218.48.0/20" : { "autonomous_system_number" : 7132 } }, { "69.218.64.0/18" : { "autonomous_system_number" : 7132 } }, { "69.218.128.0/18" : { "autonomous_system_number" : 7132 } }, { "69.218.192.0/19" : { "autonomous_system_number" : 7132 } }, { "69.218.224.0/20" : { "autonomous_system_number" : 7132 } }, { "69.218.240.0/21" : { "autonomous_system_number" : 7132 } }, { "69.218.248.0/23" : { "autonomous_system_number" : 7132 } }, { "69.218.250.0/24" : { "autonomous_system_number" : 7132 } }, { "69.218.251.0/28" : { "autonomous_system_number" : 7132 } }, { "69.218.251.16/28" : { "autonomous_system_number" : 7132 } }, { "69.218.251.32/27" : { "autonomous_system_number" : 7132 } }, { "69.218.251.64/26" : { "autonomous_system_number" : 7132 } }, { "69.218.251.128/25" : { "autonomous_system_number" : 7132 } }, { "69.218.252.0/22" : { "autonomous_system_number" : 7132 } }, { "69.219.0.0/18" : { "autonomous_system_number" : 7132 } }, { "69.219.64.0/20" : { "autonomous_system_number" : 7132 } }, { "69.219.80.0/22" : { "autonomous_system_number" : 7132 } }, { "70.46.21.0/24" : { "autonomous_system_number" : 11456 } }, { "70.46.22.0/23" : { "autonomous_system_number" : 11456 } }, { "70.46.24.0/21" : { "autonomous_system_number" : 11456 } }, { "70.46.32.0/19" : { "autonomous_system_number" : 11456 } }, { "70.46.64.0/19" : { "autonomous_system_number" : 11456 } }, { "70.46.96.0/20" : { "autonomous_system_number" : 11456 } }, { "70.46.112.0/21" : { "autonomous_system_number" : 11456 } }, { "70.46.120.0/23" : { "autonomous_system_number" : 11456 } }, { "70.46.122.0/24" : { "autonomous_system_number" : 11456 } }, { "70.46.123.0/25" : { "autonomous_system_number" : 11456 } }, { "70.46.123.128/28" : { "autonomous_system_number" : 11456 } }, { "70.46.123.144/32" : { "autonomous_system_number" : 11456 } }, { "70.46.123.145/32" : { "autonomous_system_number" : 11456 } }, { "70.46.123.146/31" : { "autonomous_system_number" : 11456 } }, { "70.46.123.148/30" : { "autonomous_system_number" : 11456 } }, { "70.46.123.152/29" : { "autonomous_system_number" : 11456 } }, { "70.46.123.160/27" : { "autonomous_system_number" : 11456 } }, { "70.46.123.192/26" : { "autonomous_system_number" : 11456 } }, { "70.46.124.0/22" : { "autonomous_system_number" : 11456 } }, { "70.46.128.0/17" : { "autonomous_system_number" : 11456 } }, { "70.160.0.0/11" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "70.192.0.0/11" : { "autonomous_system_number" : 6167, "autonomous_system_organization" : "Cellco Partnership DBA Verizon Wireless" } }, { "70.224.0.0/11" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.96.0.0/11" : { "autonomous_system_number" : 701, "autonomous_system_organization" : "MCI Communications Services, Inc. d/b/a Verizon Business" } }, { "71.128.0.0/14" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.132.0.0/15" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.134.0.0/18" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.134.64.0/21" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.134.72.0/22" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.134.76.0/23" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.134.78.0/23" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.134.80.0/20" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.134.96.0/19" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.134.128.0/17" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.135.0.0/16" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.136.0.0/15" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.138.0.0/18" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.138.64.0/19" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.138.96.0/21" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.138.104.0/25" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.138.104.128/26" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.138.104.192/27" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.138.104.224/28" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.138.104.240/29" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.138.104.248/29" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.138.105.0/24" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.138.106.0/23" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.138.108.0/22" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.138.112.0/20" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.138.128.0/17" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.139.0.0/16" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.140.0.0/17" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.140.128.0/18" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.140.192.0/22" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.140.196.0/23" : { "autonomous_system_number" : 7132, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.140.198.0/23" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.140.200.0/21" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.140.208.0/20" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.140.224.0/19" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.141.0.0/16" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.142.0.0/15" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "71.144.0.0/12" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "72.96.0.0/11" : { "autonomous_system_number" : 6167, "autonomous_system_organization" : "Cellco Partnership DBA Verizon Wireless" } }, { "72.192.0.0/12" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.208.0.0/14" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.212.0.0/15" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.214.0.0/22" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.214.4.0/23" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.214.6.0/26" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.214.6.64/29" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.214.6.72/32" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.214.6.73/32" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.214.6.74/31" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.214.6.76/30" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.214.6.80/28" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.214.6.96/27" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.214.6.128/25" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.214.7.0/24" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.214.8.0/21" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.214.16.0/20" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.214.32.0/19" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.214.64.0/18" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.214.128.0/17" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.215.0.0/16" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "72.216.0.0/13" : { "autonomous_system_number" : 22773, "autonomous_system_organization" : "Cox Communications Inc." } }, { "73.0.0.0/8" : { "autonomous_system_number" : 7922, "autonomous_system_organization" : "Comcast Cable Communications, Inc." } }, { "74.0.32.0/19" : { "autonomous_system_number" : 18566 } }, { "74.0.64.0/18" : { "autonomous_system_number" : 18566 } }, { "74.0.128.0/21" : { "autonomous_system_number" : 18566 } }, { "74.0.136.0/24" : { "autonomous_system_number" : 18566 } }, { "74.0.137.0/25" : { "autonomous_system_number" : 18566 } }, { "74.0.137.128/26" : { "autonomous_system_number" : 18566 } }, { "74.0.137.192/31" : { "autonomous_system_number" : 18566 } }, { "74.0.137.194/32" : { "autonomous_system_number" : 18566 } }, { "74.0.137.195/32" : { "autonomous_system_number" : 18566 } }, { "74.0.137.196/30" : { "autonomous_system_number" : 18566 } }, { "74.0.137.200/29" : { "autonomous_system_number" : 18566 } }, { "74.0.137.208/28" : { "autonomous_system_number" : 18566 } }, { "74.0.137.224/27" : { "autonomous_system_number" : 18566 } }, { "74.0.138.0/23" : { "autonomous_system_number" : 18566 } }, { "74.0.140.0/22" : { "autonomous_system_number" : 18566 } }, { "74.0.144.0/20" : { "autonomous_system_number" : 18566 } }, { "74.0.160.0/21" : { "autonomous_system_number" : 18566 } }, { "74.160.0.0/11" : { "autonomous_system_number" : 6389, "autonomous_system_organization" : "BellSouth.net Inc." } }, { "74.224.0.0/11" : { "autonomous_system_number" : 6389, "autonomous_system_organization" : "BellSouth.net Inc." } }, { "75.0.0.0/11" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "75.77.40.0/21" : { "autonomous_system_number" : 11456 } }, { "75.77.48.0/20" : { "autonomous_system_number" : 11456 } }, { "75.77.64.0/18" : { "autonomous_system_number" : 11456 } }, { "75.77.128.0/18" : { "autonomous_system_number" : 11456 } }, { "75.77.192.0/20" : { "autonomous_system_number" : 11456 } }, { "75.77.208.0/23" : { "autonomous_system_number" : 11456 } }, { "75.77.210.0/24" : { "autonomous_system_number" : 11456 } }, { "75.77.211.0/25" : { "autonomous_system_number" : 11456 } }, { "75.77.211.128/26" : { "autonomous_system_number" : 11456 } }, { "75.77.211.192/28" : { "autonomous_system_number" : 11456 } }, { "75.77.211.208/30" : { "autonomous_system_number" : 11456 } }, { "75.77.211.212/30" : { "autonomous_system_number" : 11456 } }, { "75.77.211.216/29" : { "autonomous_system_number" : 11456 } }, { "75.77.211.224/27" : { "autonomous_system_number" : 11456 } }, { "75.77.212.0/22" : { "autonomous_system_number" : 11456 } }, { "75.77.216.0/21" : { "autonomous_system_number" : 11456 } }, { "75.77.224.0/19" : { "autonomous_system_number" : 11456 } }, { "75.192.0.0/10" : { "autonomous_system_number" : 6167, "autonomous_system_organization" : "Cellco Partnership DBA Verizon Wireless" } }, { "76.96.0.0/11" : { "autonomous_system_number" : 7922, "autonomous_system_organization" : "Comcast Cable Communications, Inc." } }, { "76.128.0.0/11" : { "autonomous_system_number" : 7922, "autonomous_system_organization" : "Comcast Cable Communications, Inc." } }, { "76.224.0.0/11" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "77.128.0.0/11" : { "autonomous_system_number" : 15557, "autonomous_system_organization" : "Societe Francaise du Radiotelephone S.A" } }, { "78.26.64.0/22" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "78.26.68.0/23" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "78.26.70.0/25" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "78.26.70.128/26" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "78.26.70.192/28" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "78.26.70.208/29" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "78.26.70.216/29" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "78.26.70.224/27" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "78.26.71.0/24" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "78.26.72.0/21" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "78.26.80.0/20" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "78.26.96.0/20" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "78.26.112.0/21" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "78.26.120.0/22" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "78.26.124.0/23" : { "autonomous_system_number" : 28929, "autonomous_system_organization" : "ASDASD srl" } }, { "78.192.0.0/10" : { "autonomous_system_number" : 12322, "autonomous_system_organization" : "Free SAS" } }, { "79.192.0.0/10" : { "autonomous_system_number" : 3320, "autonomous_system_organization" : "Deutsche Telekom AG" } }, { "80.128.0.0/11" : { "autonomous_system_number" : 3320, "autonomous_system_organization" : "Deutsche Telekom AG" } }, { "81.128.0.0/11" : { "autonomous_system_number" : 2856, "autonomous_system_organization" : "BTnet UK Regional network" } }, { "82.99.0.0/20" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "82.99.16.0/24" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "82.99.17.0/26" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "82.99.17.64/27" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "82.99.17.96/27" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "82.99.17.128/25" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "82.99.18.0/23" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "82.99.20.0/22" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "82.99.24.0/21" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "82.99.32.0/19" : { "autonomous_system_number" : 12552, "autonomous_system_organization" : "IP-Only" } }, { "83.206.10.0/23" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "83.206.12.0/22" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "83.206.16.0/20" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "83.206.32.0/22" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "83.206.36.0/25" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "83.206.36.128/26" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "83.206.36.192/27" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "83.206.36.224/29" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "83.206.36.232/29" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "83.206.36.240/28" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "83.206.37.0/24" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "83.206.38.0/23" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "83.206.40.0/21" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "83.206.48.0/20" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "83.206.64.0/23" : { "autonomous_system_number" : 3215, "autonomous_system_organization" : "France Telecom - Orange" } }, { "84.128.0.0/10" : { "autonomous_system_number" : 3320, "autonomous_system_organization" : "Deutsche Telekom AG" } }, { "85.88.0.0/23" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH" } }, { "85.88.2.0/25" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH" } }, { "85.88.2.128/26" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH" } }, { "85.88.2.192/27" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH" } }, { "85.88.2.224/27" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH" } }, { "85.88.3.0/24" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH" } }, { "85.88.4.0/22" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH" } }, { "85.88.8.0/21" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH" } }, { "85.88.16.0/20" : { "autonomous_system_number" : 33984, "autonomous_system_organization" : "Surfplanet GmbH" } }, { "87.128.0.0/10" : { "autonomous_system_number" : 3320, "autonomous_system_organization" : "Deutsche Telekom AG" } }, { "89.80.0.0/13" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "89.88.0.0/14" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "89.92.0.0/17" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "89.92.128.0/18" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "89.92.192.0/20" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "89.92.208.0/22" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "89.92.212.0/23" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "89.92.214.0/23" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "89.92.216.0/21" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "89.92.224.0/19" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "89.93.0.0/16" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "89.94.0.0/15" : { "autonomous_system_number" : 5410, "autonomous_system_organization" : "Bouygues Telecom ISP" } }, { "89.160.0.0/20" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "89.160.16.0/22" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "89.160.20.0/26" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "89.160.20.64/27" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "89.160.20.96/28" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "89.160.20.112/29" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "89.160.20.120/29" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "89.160.20.128/25" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "89.160.21.0/24" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "89.160.22.0/23" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "89.160.24.0/21" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "89.160.32.0/19" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "89.160.64.0/18" : { "autonomous_system_number" : 29518, "autonomous_system_organization" : "Bredband2 AB" } }, { "91.0.0.0/10" : { "autonomous_system_number" : 3320, "autonomous_system_organization" : "Deutsche Telekom AG" } }, { "93.192.0.0/10" : { "autonomous_system_number" : 3320, "autonomous_system_organization" : "Deutsche Telekom AG" } }, { "96.128.0.0/10" : { "autonomous_system_number" : 7922, "autonomous_system_organization" : "Comcast Cable Communications, Inc." } }, { "97.0.0.0/10" : { "autonomous_system_number" : 6167, "autonomous_system_organization" : "Cellco Partnership DBA Verizon Wireless" } }, { "97.128.0.0/9" : { "autonomous_system_number" : 6167, "autonomous_system_organization" : "Cellco Partnership DBA Verizon Wireless" } }, { "98.192.0.0/10" : { "autonomous_system_number" : 7922, "autonomous_system_organization" : "Comcast Cable Communications, Inc." } }, { "104.64.0.0/10" : { "autonomous_system_number" : 35994, "autonomous_system_organization" : "Akamai Technologies, Inc." } }, { "111.0.0.0/10" : { "autonomous_system_number" : 9808, "autonomous_system_organization" : "Guangdong Mobile Communication Co.Ltd." } }, { "112.0.0.0/10" : { "autonomous_system_number" : 9808, "autonomous_system_organization" : "Guangdong Mobile Communication Co.Ltd." } }, { "117.128.0.0/10" : { "autonomous_system_number" : 9808, "autonomous_system_organization" : "Guangdong Mobile Communication Co.Ltd." } }, { "120.192.0.0/10" : { "autonomous_system_number" : 9808, "autonomous_system_organization" : "Guangdong Mobile Communication Co.Ltd." } }, { "126.0.0.0/8" : { "autonomous_system_number" : 17676, "autonomous_system_organization" : "Softbank BB Corp." } }, { "132.0.0.0/10" : { "autonomous_system_number" : 721, "autonomous_system_organization" : "DoD Network Information Center" } }, { "142.217.208.0/22" : { "autonomous_system_number" : 35911 } }, { "142.217.212.0/23" : { "autonomous_system_number" : 35911 } }, { "142.217.214.0/24" : { "autonomous_system_number" : 35911 } }, { "142.217.215.0/24" : { "autonomous_system_number" : 35911 } }, { "142.217.216.0/21" : { "autonomous_system_number" : 35911 } }, { "142.217.224.0/21" : { "autonomous_system_number" : 35911 } }, { "142.217.232.0/22" : { "autonomous_system_number" : 35911 } }, { "142.217.236.0/23" : { "autonomous_system_number" : 35911 } }, { "142.217.238.0/24" : { "autonomous_system_number" : 35911 } }, { "145.128.0.0/10" : { "autonomous_system_number" : 1103, "autonomous_system_organization" : "SURFnet, The Netherlands" } }, { "149.101.100.0/28" : { "autonomous_system_number" : 6167, "autonomous_system_organization" : "CELLCO-PART" } }, { "172.128.0.0/10" : { "autonomous_system_number" : 1668, "autonomous_system_organization" : "AOL Transit Data Network" } }, { "174.192.0.0/10" : { "autonomous_system_number" : 6167, "autonomous_system_organization" : "Cellco Partnership DBA Verizon Wireless" } }, { "176.128.0.0/10" : { "autonomous_system_number" : 12844, "autonomous_system_organization" : "Bouygues Telecom" } }, { "180.0.0.0/10" : { "autonomous_system_number" : 4713, "autonomous_system_organization" : "NTT Communications Corporation" } }, { "183.0.0.0/10" : { "autonomous_system_number" : 4134, "autonomous_system_organization" : "Chinanet" } }, { "183.192.0.0/10" : { "autonomous_system_number" : 9808, "autonomous_system_organization" : "Guangdong Mobile Communication Co.Ltd." } }, { "208.110.194.0/23" : { "autonomous_system_number" : 11025 } }, { "208.110.196.0/22" : { "autonomous_system_number" : 11025 } }, { "208.110.200.0/21" : { "autonomous_system_number" : 11025 } }, { "208.110.208.0/21" : { "autonomous_system_number" : 11025 } }, { "208.110.216.0/24" : { "autonomous_system_number" : 11025 } }, { "208.110.217.0/26" : { "autonomous_system_number" : 11025 } }, { "208.110.217.64/27" : { "autonomous_system_number" : 11025 } }, { "208.110.217.96/29" : { "autonomous_system_number" : 11025 } }, { "208.110.217.104/31" : { "autonomous_system_number" : 11025 } }, { "208.110.217.106/32" : { "autonomous_system_number" : 11025 } }, { "208.110.217.107/32" : { "autonomous_system_number" : 11025 } }, { "208.110.217.108/30" : { "autonomous_system_number" : 11025 } }, { "208.110.217.112/31" : { "autonomous_system_number" : 11025 } }, { "208.110.217.114/31" : { "autonomous_system_number" : 11025 } }, { "208.110.217.116/30" : { "autonomous_system_number" : 11025 } }, { "208.110.217.120/29" : { "autonomous_system_number" : 11025 } }, { "208.110.217.128/25" : { "autonomous_system_number" : 11025 } }, { "208.110.218.0/23" : { "autonomous_system_number" : 11025 } }, { "208.110.220.0/22" : { "autonomous_system_number" : 11025 } }, { "208.192.0.0/10" : { "autonomous_system_number" : 701, "autonomous_system_organization" : "MCI Communications Services, Inc. d/b/a Verizon Business" } }, { "214.0.0.0/8" : { "autonomous_system_number" : 721, "autonomous_system_organization" : "DoD Network Information Center" } }, { "215.0.0.0/9" : { "autonomous_system_number" : 721, "autonomous_system_organization" : "DoD Network Information Center" } }, { "216.83.161.0/24" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "216.83.162.0/23" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "216.83.164.0/22" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "216.83.168.0/23" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "216.83.170.0/24" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "216.83.171.0/25" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "216.83.171.128/26" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "216.83.171.192/27" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "216.83.171.224/27" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "216.83.172.0/22" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "216.83.176.0/20" : { "autonomous_system_number" : 7381, "autonomous_system_organization" : "SunGard Availability Services USA" } }, { "216.160.26.0/23" : { "autonomous_system_number" : 209 } }, { "216.160.28.0/22" : { "autonomous_system_number" : 209 } }, { "216.160.32.0/19" : { "autonomous_system_number" : 209 } }, { "216.160.64.0/20" : { "autonomous_system_number" : 209 } }, { "216.160.80.0/23" : { "autonomous_system_number" : 209 } }, { "216.160.82.0/24" : { "autonomous_system_number" : 209 } }, { "216.160.83.0/27" : { "autonomous_system_number" : 209 } }, { "216.160.83.32/28" : { "autonomous_system_number" : 209 } }, { "216.160.83.48/29" : { "autonomous_system_number" : 209 } }, { "216.160.83.56/29" : { "autonomous_system_number" : 209 } }, { "216.160.83.64/26" : { "autonomous_system_number" : 209 } }, { "216.160.83.128/25" : { "autonomous_system_number" : 209 } }, { "216.160.84.0/22" : { "autonomous_system_number" : 209 } }, { "216.160.88.0/21" : { "autonomous_system_number" : 209 } }, { "216.160.96.0/19" : { "autonomous_system_number" : 209 } }, { "216.160.128.0/18" : { "autonomous_system_number" : 209 } }, { "216.160.192.0/21" : { "autonomous_system_number" : 209 } }, { "216.160.200.0/22" : { "autonomous_system_number" : 209 } }, { "216.160.204.0/23" : { "autonomous_system_number" : 209 } }, { "216.160.206.0/24" : { "autonomous_system_number" : 209 } }, { "219.0.0.0/10" : { "autonomous_system_number" : 17676, "autonomous_system_organization" : "Softbank BB Corp." } }, { "220.0.0.0/10" : { "autonomous_system_number" : 17676, "autonomous_system_organization" : "Softbank BB Corp." } }, { "222.229.128.0/17" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC" } }, { "222.230.0.0/17" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC" } }, { "222.230.128.0/21" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC" } }, { "222.230.136.0/23" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC" } }, { "222.230.138.0/23" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC" } }, { "222.230.140.0/22" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC" } }, { "222.230.144.0/20" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC" } }, { "222.230.160.0/19" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC" } }, { "222.230.192.0/18" : { "autonomous_system_number" : 2519, "autonomous_system_organization" : "JPNIC" } }, { "2001:1700::/27" : { "autonomous_system_number" : 6730, "autonomous_system_organization" : "Sunrise Communications AG" } }, { "2001:1c00::/23" : { "autonomous_system_number" : 9143, "autonomous_system_organization" : "Ziggo B.V." } }, { "2001:2000::/20" : { "autonomous_system_number" : 1299, "autonomous_system_organization" : "TeliaSonera International Carrier" } }, { "2001:4540::/27" : { "autonomous_system_number" : 9924, "autonomous_system_organization" : "Taiwan Fixed Network, Telco and Network Service Provider." } }, { "2001:4580::/26" : { "autonomous_system_number" : 4780, "autonomous_system_organization" : "Digital United Inc." } }, { "2001:4600::/24" : { "autonomous_system_number" : 2119, "autonomous_system_organization" : "Telenor Norge AS" } }, { "2001:5000::/24" : { "autonomous_system_number" : 1273, "autonomous_system_organization" : "Cable and Wireless Worldwide plc" } }, { "2001:5100::/24" : { "autonomous_system_number" : 2529, "autonomous_system_organization" : "Now maintained by Cable & Wireless Worldwide" } }, { "2001:5200::/23" : { "autonomous_system_number" : 1273, "autonomous_system_organization" : "Cable and Wireless Worldwide plc" } }, { "2001:5400::/22" : { "autonomous_system_number" : 1273, "autonomous_system_organization" : "Cable and Wireless Worldwide plc" } }, { "2001:8000::/20" : { "autonomous_system_number" : 1221, "autonomous_system_organization" : "Telstra Pty Ltd" } }, { "2001:b000::/21" : { "autonomous_system_number" : 17419, "autonomous_system_organization" : "HiNet IPv6 Service Network.," } }, { "2003::/19" : { "autonomous_system_number" : 3320, "autonomous_system_organization" : "Deutsche Telekom AG" } }, { "2400::/20" : { "autonomous_system_number" : 4766, "autonomous_system_organization" : "Korea Telecom" } }, { "2400:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2400:2000::/20" : { "autonomous_system_number" : 17676, "autonomous_system_organization" : "Softbank BB Corp." } }, { "2400:3000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2400:4000::/22" : { "autonomous_system_number" : 4713, "autonomous_system_organization" : "NTT Communications Corporation" } }, { "2400:4400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2400:4800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2400:5000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2400:6000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2400:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:8000::/26" : { "autonomous_system_number" : 9919, "autonomous_system_organization" : "New Century InfoComm Tech Co., Ltd." } }, { "2401:8040::/26" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:8080::/25" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:8100::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:8200::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:8400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:8800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:9000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:a000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2401:c000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2402::/16" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2403::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2403:8000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2403:9000::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2403:9800::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2403:9900::/24" : { "autonomous_system_number" : 17676, "autonomous_system_organization" : "Softbank BB Corp." } }, { "2403:9a00::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2403:9c00::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2403:a000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2403:c000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404::/26" : { "autonomous_system_number" : 17709, "autonomous_system_organization" : "Eastern Broadband Telecom Co.,Ltd" } }, { "2404:40::/26" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:80::/25" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:100::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:200::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2404:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2405::/16" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2406::/15" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2408::/22" : { "autonomous_system_number" : 55817, "autonomous_system_organization" : "Nippon Telegraph and Telephone Corporation PF Labs" } }, { "2408:400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2408:800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2408:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2408:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2408:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2408:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2409::/23" : { "autonomous_system_number" : 55391, "autonomous_system_organization" : "INTERNET MULTIFEED CO." } }, { "2409:200::/23" : { "autonomous_system_number" : 55392, "autonomous_system_organization" : "INTERNET MULTIFEED CO." } }, { "2409:400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2409:800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2409:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2409:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2409:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2409:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240a::/16" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240b::/22" : { "autonomous_system_number" : 2516, "autonomous_system_organization" : "KDDI KDDI CORPORATION" } }, { "240b:400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240b:800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240b:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240b:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240b:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240b:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240c::/16" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d::/27" : { "autonomous_system_number" : 2527, "autonomous_system_organization" : "So-net Entertainment Corporation" } }, { "240d:20::/27" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:40::/26" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:80::/25" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:100::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:200::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240d:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240e::/24" : { "autonomous_system_number" : 4134, "autonomous_system_organization" : "Chinanet" } }, { "240e:100::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240e:200::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240e:400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240e:800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240e:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240e:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240e:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240e:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240f::/24" : { "autonomous_system_number" : 2516, "autonomous_system_organization" : "KDDI KDDI CORPORATION" } }, { "240f:100::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240f:200::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240f:400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240f:800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240f:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240f:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240f:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "240f:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:800::/27" : { "autonomous_system_number" : 701, "autonomous_system_organization" : "MCI Communications Services, Inc. d/b/a Verizon Business" } }, { "2600:820::/27" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:840::/26" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:880::/25" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:900::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:a00::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:c00::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:1000::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:1400::/27" : { "autonomous_system_number" : 31377, "autonomous_system_organization" : "Akamai International B.V." } }, { "2600:1420::/27" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:1440::/26" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:1480::/25" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:1500::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:1600::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:1800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:4000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:5000::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:5400::/27" : { "autonomous_system_number" : 19108, "autonomous_system_organization" : "Suddenlink Communications" } }, { "2600:5420::/27" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:5440::/26" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:5480::/25" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:5500::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:5600::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:5800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:6000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:7000::/24" : { "autonomous_system_number" : 6939, "autonomous_system_organization" : "Hurricane Electric, Inc." } }, { "2600:7100::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:7200::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:7400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:7800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2600:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2601::/16" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2602::/24" : { "autonomous_system_number" : 209, "autonomous_system_organization" : "NOVARTIS-DMZ-US" } }, { "2602:100::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2602:200::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2602:300::/24" : { "autonomous_system_number" : 7018, "autonomous_system_organization" : "AT&T Services, Inc." } }, { "2602:400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2602:800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2602:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2602:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2602:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2602:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2603::/16" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2604::/14" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2608::/13" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2800::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2800:2000::/20" : { "autonomous_system_number" : 10318, "autonomous_system_organization" : "S.A." } }, { "2800:3000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2800:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2800:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2801::/16" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2802::/15" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2804::/15" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2806::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2806:1000::/24" : { "autonomous_system_number" : 8151, "autonomous_system_organization" : "Uninet S.A. de C.V." } }, { "2806:1100::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2806:1200::/23" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2806:1400::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2806:1800::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2806:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2806:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2806:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2807::/16" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2808::/13" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2a00::/22" : { "autonomous_system_number" : 3209, "autonomous_system_organization" : "Vodafone GmbH" } }, { "2a00:800::/25" : { "autonomous_system_number" : 1257, "autonomous_system_organization" : "TELE2" } }, { "2a00:2000::/23" : { "autonomous_system_number" : 5400, "autonomous_system_organization" : "British Telecommunications plc" } }, { "2a00:2200::/24" : { "autonomous_system_number" : 5400, "autonomous_system_organization" : "British Telecommunications plc" } }, { "2a00:2300::/25" : { "autonomous_system_number" : 5400, "autonomous_system_organization" : "British Telecommunications plc" } }, { "2a00:2380::/25" : { "autonomous_system_number" : 2856, "autonomous_system_organization" : "BTnet UK Regional network" } }, { "2a01:2e0::/28" : { "autonomous_system_number" : 8374, "autonomous_system_organization" : "Polkomtel Sp. z o.o." } }, { "2a01:800::/24" : { "autonomous_system_number" : 3209, "autonomous_system_organization" : "Vodafone GmbH" } }, { "2a01:c00::/26" : { "autonomous_system_number" : 13184, "autonomous_system_organization" : "Telefonica Germany GmbH & Co.OHG" } }, { "2a01:e00::/26" : { "autonomous_system_number" : 12322, "autonomous_system_organization" : "Free SAS" } }, { "2a01:1000::/21" : { "autonomous_system_number" : 5617, "autonomous_system_organization" : "Telekomunikacja Polska S.A." } }, { "2a01:2000::/20" : { "autonomous_system_number" : 3269, "autonomous_system_organization" : "Telecom Italia S.p.a." } }, { "2a01:c000::/19" : { "autonomous_system_number" : 5511, "autonomous_system_organization" : "Orange S.A." } }, { "2a02:1200::/27" : { "autonomous_system_number" : 3303, "autonomous_system_organization" : "Swisscom (Switzerland) Ltd" } }, { "2a02:1400::/26" : { "autonomous_system_number" : 2119, "autonomous_system_organization" : "Telenor Norge AS" } }, { "2a02:1800::/24" : { "autonomous_system_number" : 6848, "autonomous_system_organization" : "Telenet N.V." } }, { "2a02:2e00::/27" : { "autonomous_system_number" : 12715, "autonomous_system_organization" : "Jazz Telecom S.A." } }, { "2a02:3000::/23" : { "autonomous_system_number" : 6805, "autonomous_system_organization" : "Telefonica Germany GmbH & Co.OHG" } }, { "2a02:8100::/27" : { "autonomous_system_number" : 31334, "autonomous_system_organization" : "Kabel Deutschland Vertrieb und Service GmbH" } }, { "2a02:8200::/27" : { "autonomous_system_number" : 9145, "autonomous_system_organization" : "EWE TEL GmbH" } }, { "2a02:8400::/25" : { "autonomous_system_number" : 15557, "autonomous_system_organization" : "Societe Francaise du Radiotelephone S.A" } }, { "2a02:9000::/23" : { "autonomous_system_number" : 3352, "autonomous_system_organization" : "TELEFONICA DE ESPANA" } }, { "2a02:a000::/26" : { "autonomous_system_number" : 5432, "autonomous_system_organization" : "Belgacom regional ASN" } }, { "2a02:a200::/27" : { "autonomous_system_number" : 6830, "autonomous_system_organization" : "Liberty Global Operations B.V." } }, { "2a02:a300::/27" : { "autonomous_system_number" : 6830, "autonomous_system_organization" : "Liberty Global Operations B.V." } }, { "2a02:a400::/26" : { "autonomous_system_number" : 1136, "autonomous_system_organization" : "KPN Internet Solutions" } }, { "2a02:a440::/26" : { "autonomous_system_number" : 8737, "autonomous_system_organization" : "Koninklijke KPN N.V." } }, { "2a02:a800::/26" : { "autonomous_system_number" : 6739, "autonomous_system_organization" : "Cableuropa - ONO" } }, { "2a02:aa00::/27" : { "autonomous_system_number" : 6830, "autonomous_system_organization" : "Liberty Global Operations B.V." } }, { "2a04:2400::/27" : { "autonomous_system_number" : 6830, "autonomous_system_organization" : "Liberty Global Operations B.V." } }, { "2c00::/13" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c08::/14" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0c::/15" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0e::/20" : { "autonomous_system_number" : 24863, "autonomous_system_organization" : "LINKdotNET" } }, { "2c0e:1000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0e:2000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0e:4000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0e:8000::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f::/17" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:8000::/18" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:c000::/19" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:e000::/20" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:f000::/21" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:f800::/22" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:fc00::/27" : { "autonomous_system_number" : 3741, "autonomous_system_organization" : "IS" } }, { "2c0f:fc20::/27" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:fc40::/26" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:fc80::/25" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:fd00::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:fe00::/24" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:ff00::/26" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } }, { "2c0f:ff40::/26" : { "autonomous_system_number" : 10474, "autonomous_system_organization" : "MWEB-10474" } }, { "2c0f:ff80::/25" : { "autonomous_system_number" : 237, "autonomous_system_organization" : "Merit Network Inc." } } ] golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/source-data/GeoLite2-City-Test.json000066400000000000000000013400501507532544400320360ustar00rootroot00000000000000[ { "2.125.160.216/29" : { "city" : { "geoname_id" : 2655045, "names" : { "en" : "Boxford" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.75, "longitude" : -1.25, "time_zone" : "Europe/London" }, "postal" : { "code" : "OX1" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "subdivisions" : [ { "geoname_id" : 6269131, "iso_code" : "ENG", "names" : { "en" : "England", "es" : "Inglaterra", "fr" : "Angleterre", "pt-BR" : "Inglaterra" } }, { "geoname_id" : 3333217, "iso_code" : "WBK", "names" : { "en" : "West Berkshire", "ru" : "Западный Беркшир", "zh-CN" : "西伯克郡" } } ] } }, { "67.43.156.0/24" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1252634, "iso_code" : "BT", "names" : { "de" : "Bhutan", "en" : "Bhutan", "es" : "Bután", "fr" : "Bhutan", "ja" : "ブータン王国", "pt-BR" : "Butão", "ru" : "Бутан", "zh-CN" : "不丹" } }, "location" : { "accuracy_radius" : 534, "latitude" : 27.5, "longitude" : 90.5, "time_zone" : "Asia/Thimphu" }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "traits" : { "is_anonymous_proxy" : true } } }, { "81.2.69.142/31" : { "city" : { "geoname_id" : 2643743, "names" : { "de" : "London", "en" : "London", "es" : "Londres", "fr" : "Londres", "ja" : "ロンドン", "pt-BR" : "Londres", "ru" : "Лондон" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 10, "latitude" : 51.5142, "longitude" : -0.0931, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "geoname_id" : 6269131, "iso_code" : "ENG", "names" : { "en" : "England", "es" : "Inglaterra", "fr" : "Angleterre", "pt-BR" : "Inglaterra" } } ] } }, { "81.2.69.144/28" : { "city" : { "geoname_id" : 2643743, "names" : { "de" : "London", "en" : "London", "es" : "Londres", "fr" : "Londres", "ja" : "ロンドン", "pt-BR" : "Londres", "ru" : "Лондон" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 3, "latitude" : 51.5142, "longitude" : -0.0931, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "geoname_id" : 6269131, "iso_code" : "ENG", "names" : { "en" : "England", "es" : "Inglaterra", "fr" : "Angleterre", "pt-BR" : "Inglaterra" } } ] } }, { "81.2.69.160/27" : { "city" : { "geoname_id" : 2643743, "names" : { "de" : "London", "en" : "London", "es" : "Londres", "fr" : "Londres", "ja" : "ロンドン", "pt-BR" : "Londres", "ru" : "Лондон" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5142, "longitude" : -0.0931, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "geoname_id" : 6269131, "iso_code" : "ENG", "names" : { "en" : "England", "es" : "Inglaterra", "fr" : "Angleterre", "pt-BR" : "Inglaterra" } } ] } }, { "81.2.69.192/28" : { "city" : { "geoname_id" : 2643743, "names" : { "de" : "London", "en" : "London", "es" : "Londres", "fr" : "Londres", "ja" : "ロンドン", "pt-BR" : "Londres", "ru" : "Лондон" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5142, "longitude" : -0.0931, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "subdivisions" : [ { "geoname_id" : 6269131, "iso_code" : "ENG", "names" : { "en" : "England", "es" : "Inglaterra", "fr" : "Angleterre", "pt-BR" : "Inglaterra" } } ] } }, { "89.160.20.112/28" : { "city" : { "geoname_id" : 2694762, "names" : { "de" : "Linköping", "en" : "Linköping", "fr" : "Linköping", "ja" : "リンシェーピング", "zh-CN" : "林雪平" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 76, "latitude" : 58.4167, "longitude" : 15.6167, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "subdivisions" : [ { "geoname_id" : 2685867, "iso_code" : "E", "names" : { "en" : "Östergötland County", "fr" : "Comté d'Östergötland" } } ] } }, { "89.160.20.128/25" : { "city" : { "geoname_id" : 2694762, "names" : { "de" : "Linköping", "en" : "Linköping", "fr" : "Linköping", "ja" : "リンシェーピング", "zh-CN" : "林雪平" } }, "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 76, "latitude" : 58.4167, "longitude" : 15.6167, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "subdivisions" : [ { "geoname_id" : 2685867, "iso_code" : "E", "names" : { "en" : "Östergötland County", "fr" : "Comté d'Östergötland" } } ] } }, { "175.16.199.0/24" : { "city" : { "geoname_id" : 2038180, "names" : { "de" : "Chángchūn", "en" : "Changchun", "fr" : "Changchun", "ja" : "長春市", "ru" : "Чанчунь", "zh-CN" : "长春" } }, "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "China", "es" : "China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 43.88, "longitude" : 125.3228, "time_zone" : "Asia/Harbin" }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "China", "es" : "China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "subdivisions" : [ { "geoname_id" : 2036500, "iso_code" : "22", "names" : { "en" : "Jilin Sheng", "zh-CN" : "吉林" } } ] } }, { "202.196.224.0/20" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1694008, "iso_code" : "PH", "names" : { "de" : "Philippinen", "en" : "Philippines", "es" : "Filipinas", "fr" : "Philippines", "ja" : "フィリピン共和国", "pt-BR" : "Filipinas", "ru" : "Филиппины", "zh-CN" : "菲律宾" } }, "location" : { "accuracy_radius" : 121, "latitude" : 13, "longitude" : 122, "time_zone" : "Asia/Manila" }, "postal" : { "code" : "34021" }, "registered_country" : { "geoname_id" : 1694008, "iso_code" : "PH", "names" : { "de" : "Philippinen", "en" : "Philippines", "es" : "Filipinas", "fr" : "Philippines", "ja" : "フィリピン共和国", "pt-BR" : "Filipinas", "ru" : "Филиппины", "zh-CN" : "菲律宾" } }, "represented_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" }, "type" : "military" } } }, { "216.160.83.56/29" : { "city" : { "geoname_id" : 5803556, "names" : { "en" : "Milton", "ru" : "Мильтон" } }, "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "América del Norte", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "location" : { "accuracy_radius" : 22, "latitude" : 47.2513, "longitude" : -122.3149, "metro_code" : 819, "time_zone" : "America/Los_Angeles" }, "postal" : { "code" : "98354" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "subdivisions" : [ { "geoname_id" : 5815135, "iso_code" : "WA", "names" : { "en" : "Washington", "es" : "Washington", "fr" : "État de Washington", "ja" : "ワシントン州", "ru" : "Вашингтон", "zh-CN" : "华盛顿州" } } ] } }, { "2001:218::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:220::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 37, "longitude" : 127.5, "time_zone" : "Asia/Seoul" }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:230::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 37, "longitude" : 127.5, "time_zone" : "Asia/Seoul" }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:238::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1668284, "iso_code" : "TW", "names" : { "de" : "Taiwan", "en" : "Taiwan", "es" : "Taiwán", "fr" : "Taïwan", "ja" : "台湾", "pt-BR" : "Taiwan", "ru" : "Тайвань", "zh-CN" : "台湾" } }, "location" : { "accuracy_radius" : 100, "latitude" : 24, "longitude" : 121, "time_zone" : "Asia/Taipei" }, "registered_country" : { "geoname_id" : 1668284, "iso_code" : "TW", "names" : { "de" : "Taiwan", "en" : "Taiwan", "es" : "Taiwán", "fr" : "Taïwan", "ja" : "台湾", "pt-BR" : "Taiwan", "ru" : "Тайвань", "zh-CN" : "台湾" } } } }, { "2001:240::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:250::/31" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35, "longitude" : 105 }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "2001:252::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35, "longitude" : 105 }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "2001:254::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35, "longitude" : 105 }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "2001:256::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35, "longitude" : 105 }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "2001:258::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:260::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:268::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:270::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 37, "longitude" : 127.5, "time_zone" : "Asia/Seoul" }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:278::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:280::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 37, "longitude" : 127.5, "time_zone" : "Asia/Seoul" }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:288::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1668284, "iso_code" : "TW", "names" : { "de" : "Taiwan", "en" : "Taiwan", "es" : "Taiwán", "fr" : "Taïwan", "ja" : "台湾", "pt-BR" : "Taiwan", "ru" : "Тайвань", "zh-CN" : "台湾" } }, "location" : { "accuracy_radius" : 100, "latitude" : 24, "longitude" : 121, "time_zone" : "Asia/Taipei" }, "registered_country" : { "geoname_id" : 1668284, "iso_code" : "TW", "names" : { "de" : "Taiwan", "en" : "Taiwan", "es" : "Taiwán", "fr" : "Taïwan", "ja" : "台湾", "pt-BR" : "Taiwan", "ru" : "Тайвань", "zh-CN" : "台湾" } } } }, { "2001:290::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 37, "longitude" : 127.5, "time_zone" : "Asia/Seoul" }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:298::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2a0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2a8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2b0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 37, "longitude" : 127.5, "time_zone" : "Asia/Seoul" }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:2b8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 37, "longitude" : 127.5, "time_zone" : "Asia/Seoul" }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:2c0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2c8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2d8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 37, "longitude" : 127.5, "time_zone" : "Asia/Seoul" }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:2e0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1819730, "iso_code" : "HK", "names" : { "de" : "Hongkong", "en" : "Hong Kong", "es" : "Hong Kong", "fr" : "Hong Kong", "ja" : "香港", "pt-BR" : "Hong Kong", "ru" : "Гонконг", "zh-CN" : "香港" } }, "location" : { "accuracy_radius" : 100, "latitude" : 22.25, "longitude" : 114.16667, "time_zone" : "Asia/Hong_Kong" }, "registered_country" : { "geoname_id" : 1819730, "iso_code" : "HK", "names" : { "de" : "Hongkong", "en" : "Hong Kong", "es" : "Hong Kong", "fr" : "Hong Kong", "ja" : "香港", "pt-BR" : "Hong Kong", "ru" : "Гонконг", "zh-CN" : "香港" } } } }, { "2001:2e8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2f0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2f8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "location" : { "accuracy_radius" : 100, "latitude" : 35.68536, "longitude" : 139.75309, "time_zone" : "Asia/Tokyo" }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2a02:cf40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:cf80::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } }, "location" : { "accuracy_radius" : 100, "latitude" : 31.5, "longitude" : 34.75, "time_zone" : "Asia/Jerusalem" }, "registered_country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } } } }, { "2a02:cfc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d000::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47.00016, "longitude" : 8.01427, "time_zone" : "Europe/Zurich" }, "registered_country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } } } }, { "2a02:d040::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:d080::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 290291, "iso_code" : "BH", "names" : { "de" : "Bahrain", "en" : "Bahrain", "es" : "Bahréin", "fr" : "Bahreïn", "ja" : "バーレーン", "pt-BR" : "Bahrain", "ru" : "Бахрейн", "zh-CN" : "巴林" } }, "location" : { "accuracy_radius" : 100, "latitude" : 26, "longitude" : 50.5, "time_zone" : "Asia/Bahrain" }, "registered_country" : { "geoname_id" : 290291, "iso_code" : "BH", "names" : { "de" : "Bahrain", "en" : "Bahrain", "es" : "Bahréin", "fr" : "Bahreïn", "ja" : "バーレーン", "pt-BR" : "Bahrain", "ru" : "Бахрейн", "zh-CN" : "巴林" } } } }, { "2a02:d0c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:d100::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:d140::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:d180::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d1c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 42.83333, "longitude" : 12.83333, "time_zone" : "Europe/Rome" }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:d200::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 660013, "is_in_european_union" : true, "iso_code" : "FI", "names" : { "de" : "Finnland", "en" : "Finland", "es" : "Finlandia", "fr" : "Finlande", "ja" : "フィンランド共和国", "pt-BR" : "Finlândia", "ru" : "Финляндия", "zh-CN" : "芬兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 64, "longitude" : 26, "time_zone" : "Europe/Helsinki" }, "registered_country" : { "geoname_id" : 660013, "is_in_european_union" : true, "iso_code" : "FI", "names" : { "de" : "Finnland", "en" : "Finland", "es" : "Finlandia", "fr" : "Finlande", "ja" : "フィンランド共和国", "pt-BR" : "Finlândia", "ru" : "Финляндия", "zh-CN" : "芬兰" } } } }, { "2a02:d240::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 630336, "iso_code" : "BY", "names" : { "de" : "Weißrussland", "en" : "Belarus", "es" : "Bielorrusia", "fr" : "Biélorussie", "ja" : "ベラルーシ共和国", "pt-BR" : "Bielo-Rússia", "ru" : "Беларусь", "zh-CN" : "白俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 53, "longitude" : 28, "time_zone" : "Europe/Minsk" }, "registered_country" : { "geoname_id" : 630336, "iso_code" : "BY", "names" : { "de" : "Weißrussland", "en" : "Belarus", "es" : "Bielorrusia", "fr" : "Biélorussie", "ja" : "ベラルーシ共和国", "pt-BR" : "Bielo-Rússia", "ru" : "Беларусь", "zh-CN" : "白俄罗斯" } } } }, { "2a02:d280::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 49.75, "longitude" : 15, "time_zone" : "Europe/Prague" }, "registered_country" : { "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } } } }, { "2a02:d2c0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 32, "longitude" : 53, "time_zone" : "Asia/Tehran" }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:d300::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 49, "longitude" : 32 }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:d340::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d380::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 32, "longitude" : 53, "time_zone" : "Asia/Tehran" }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:d3c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:d400::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 719819, "is_in_european_union" : true, "iso_code" : "HU", "names" : { "de" : "Ungarn", "en" : "Hungary", "es" : "Hungría", "fr" : "Hongrie", "ja" : "ハンガリー共和国", "pt-BR" : "Hungria", "ru" : "Венгрия", "zh-CN" : "匈牙利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47, "longitude" : 20, "time_zone" : "Europe/Budapest" }, "registered_country" : { "geoname_id" : 719819, "is_in_european_union" : true, "iso_code" : "HU", "names" : { "de" : "Ungarn", "en" : "Hungary", "es" : "Hungría", "fr" : "Hongrie", "ja" : "ハンガリー共和国", "pt-BR" : "Hungria", "ru" : "Венгрия", "zh-CN" : "匈牙利" } } } }, { "2a02:d440::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:d480::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d4c0::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 660013, "is_in_european_union" : true, "iso_code" : "FI", "names" : { "de" : "Finnland", "en" : "Finland", "es" : "Finlandia", "fr" : "Finlande", "ja" : "フィンランド共和国", "pt-BR" : "Finlândia", "ru" : "Финляндия", "zh-CN" : "芬兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 64, "longitude" : 26, "time_zone" : "Europe/Helsinki" }, "registered_country" : { "geoname_id" : 660013, "is_in_european_union" : true, "iso_code" : "FI", "names" : { "de" : "Finnland", "en" : "Finland", "es" : "Finlandia", "fr" : "Finlande", "ja" : "フィンランド共和国", "pt-BR" : "Finlândia", "ru" : "Финляндия", "zh-CN" : "芬兰" } } } }, { "2a02:d4e0::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d500::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "location" : { "accuracy_radius" : 100, "latitude" : 48.69096, "longitude" : 9.14062, "time_zone" : "Europe/Vaduz" } } }, { "2a02:d540::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:d580::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d5c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2510769, "is_in_european_union" : true, "iso_code" : "ES", "names" : { "de" : "Spanien", "en" : "Spain", "es" : "España", "fr" : "Espagne", "ja" : "スペイン", "pt-BR" : "Espanha", "ru" : "Испания", "zh-CN" : "西班牙" } }, "location" : { "accuracy_radius" : 100, "latitude" : 40, "longitude" : -4 }, "registered_country" : { "geoname_id" : 2510769, "is_in_european_union" : true, "iso_code" : "ES", "names" : { "de" : "Spanien", "en" : "Spain", "es" : "España", "fr" : "Espagne", "ja" : "スペイン", "pt-BR" : "Espanha", "ru" : "Испания", "zh-CN" : "西班牙" } } } }, { "2a02:d600::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d640::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d680::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:d6a0::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d6c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 732800, "is_in_european_union" : true, "iso_code" : "BG", "names" : { "de" : "Bulgarien", "en" : "Bulgaria", "es" : "Bulgaria", "fr" : "Bulgarie", "ja" : "ブルガリア共和国", "pt-BR" : "Bulgária", "ru" : "Болгария", "zh-CN" : "保加利亚" } }, "location" : { "accuracy_radius" : 100, "latitude" : 43, "longitude" : 25, "time_zone" : "Europe/Sofia" }, "registered_country" : { "geoname_id" : 732800, "is_in_european_union" : true, "iso_code" : "BG", "names" : { "de" : "Bulgarien", "en" : "Bulgaria", "es" : "Bulgaria", "fr" : "Bulgarie", "ja" : "ブルガリア共和国", "pt-BR" : "Bulgária", "ru" : "Болгария", "zh-CN" : "保加利亚" } } } }, { "2a02:d700::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d740::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47.00016, "longitude" : 8.01427, "time_zone" : "Europe/Zurich" }, "registered_country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } } } }, { "2a02:d780::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 32, "longitude" : 53, "time_zone" : "Asia/Tehran" }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:d7c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d800::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 25, "time_zone" : "Europe/Bucharest" }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } } } }, { "2a02:d840::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:d880::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:d8c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:d900::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:d940::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2802361, "is_in_european_union" : true, "iso_code" : "BE", "names" : { "de" : "Belgien", "en" : "Belgium", "es" : "Bélgica", "fr" : "Belgique", "ja" : "ベルギー王国", "pt-BR" : "Bélgica", "ru" : "Бельгия", "zh-CN" : "比利时" } }, "location" : { "accuracy_radius" : 100, "latitude" : 50.83333, "longitude" : 4, "time_zone" : "Europe/Brussels" }, "registered_country" : { "geoname_id" : 2802361, "is_in_european_union" : true, "iso_code" : "BE", "names" : { "de" : "Belgien", "en" : "Belgium", "es" : "Bélgica", "fr" : "Belgique", "ja" : "ベルギー王国", "pt-BR" : "Bélgica", "ru" : "Бельгия", "zh-CN" : "比利时" } } } }, { "2a02:d980::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "location" : { "accuracy_radius" : 100, "latitude" : 39.05901, "longitude" : 34.91155, "time_zone" : "Europe/Istanbul" }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:d9c0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "location" : { "accuracy_radius" : 100, "latitude" : 39.05901, "longitude" : 34.91155, "time_zone" : "Europe/Istanbul" }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:da00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:da40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:da80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47.33333, "longitude" : 13.33333, "time_zone" : "Europe/Vienna" }, "registered_country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } } } }, { "2a02:dac0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:db00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:db40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 25, "time_zone" : "Europe/Bucharest" }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } } } }, { "2a02:db80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dbc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dc00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dc40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "location" : { "accuracy_radius" : 100, "latitude" : 39.05901, "longitude" : 34.91155, "time_zone" : "Europe/Istanbul" }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:dc80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dcc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 49, "longitude" : 32 }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:dd00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 783754, "iso_code" : "AL", "names" : { "de" : "Albanien", "en" : "Albania", "es" : "Albania", "fr" : "Albanie", "ja" : "アルバニア共和国", "pt-BR" : "Albânia", "ru" : "Албания", "zh-CN" : "阿尔巴尼亚" } }, "location" : { "accuracy_radius" : 100, "latitude" : 41, "longitude" : 20, "time_zone" : "Europe/Tirane" }, "registered_country" : { "geoname_id" : 783754, "iso_code" : "AL", "names" : { "de" : "Albanien", "en" : "Albania", "es" : "Albania", "fr" : "Albanie", "ja" : "アルバニア共和国", "pt-BR" : "Albânia", "ru" : "Албания", "zh-CN" : "阿尔巴尼亚" } } } }, { "2a02:dd40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:dd80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:ddc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:de00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:de40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } }, "location" : { "accuracy_radius" : 100, "latitude" : 31.5, "longitude" : 34.75, "time_zone" : "Asia/Jerusalem" }, "registered_country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } } } }, { "2a02:de80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dec0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 272103, "iso_code" : "LB", "names" : { "de" : "Libanon", "en" : "Lebanon", "es" : "Líbano", "fr" : "Liban", "ja" : "レバノン共和国", "pt-BR" : "Líbano", "ru" : "Ливан", "zh-CN" : "黎巴嫩" } }, "location" : { "accuracy_radius" : 100, "latitude" : 33.83333, "longitude" : 35.83333, "time_zone" : "Asia/Beirut" }, "registered_country" : { "geoname_id" : 272103, "iso_code" : "LB", "names" : { "de" : "Libanon", "en" : "Lebanon", "es" : "Líbano", "fr" : "Liban", "ja" : "レバノン共和国", "pt-BR" : "Líbano", "ru" : "Ливан", "zh-CN" : "黎巴嫩" } } } }, { "2a02:df00::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 32, "longitude" : 53, "time_zone" : "Asia/Tehran" }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:df40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "location" : { "accuracy_radius" : 100, "latitude" : 39.05901, "longitude" : 34.91155, "time_zone" : "Europe/Istanbul" }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:df80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:dfc0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 32, "longitude" : 53, "time_zone" : "Asia/Tehran" }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:e000::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e040::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:e080::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 285570, "iso_code" : "KW", "names" : { "de" : "Kuwait", "en" : "Kuwait", "es" : "Kuwait", "fr" : "Koweït", "ja" : "クウェート", "pt-BR" : "Kuwait", "ru" : "Кувейт", "zh-CN" : "科威特" } }, "location" : { "accuracy_radius" : 100, "latitude" : 29.5, "longitude" : 47.75, "time_zone" : "Asia/Kuwait" }, "registered_country" : { "geoname_id" : 285570, "iso_code" : "KW", "names" : { "de" : "Kuwait", "en" : "Kuwait", "es" : "Kuwait", "fr" : "Koweït", "ja" : "クウェート", "pt-BR" : "Kuwait", "ru" : "Кувейт", "zh-CN" : "科威特" } } } }, { "2a02:e0c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47.00016, "longitude" : 8.01427, "time_zone" : "Europe/Zurich" }, "registered_country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } } } }, { "2a02:e100::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:e140::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:e180::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:e1c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:e200::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47.33333, "longitude" : 13.33333, "time_zone" : "Europe/Vienna" }, "registered_country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } } } }, { "2a02:e220::/30" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 25, "longitude" : 45, "time_zone" : "Asia/Riyadh" }, "registered_country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } } } }, { "2a02:e240::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e280::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e2c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 42.83333, "longitude" : 12.83333, "time_zone" : "Europe/Rome" }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:e300::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 630336, "iso_code" : "BY", "names" : { "de" : "Weißrussland", "en" : "Belarus", "es" : "Bielorrusia", "fr" : "Biélorussie", "ja" : "ベラルーシ共和国", "pt-BR" : "Bielo-Rússia", "ru" : "Беларусь", "zh-CN" : "白俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 53, "longitude" : 28, "time_zone" : "Europe/Minsk" }, "registered_country" : { "geoname_id" : 630336, "iso_code" : "BY", "names" : { "de" : "Weißrussland", "en" : "Belarus", "es" : "Bielorrusia", "fr" : "Biélorussie", "ja" : "ベラルーシ共和国", "pt-BR" : "Bielo-Rússia", "ru" : "Беларусь", "zh-CN" : "白俄罗斯" } } } }, { "2a02:e340::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:e380::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 42.83333, "longitude" : 12.83333, "time_zone" : "Europe/Rome" }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:e3c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e400::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:e440::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e480::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e4c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:e500::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e540::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 6290252, "iso_code" : "RS", "names" : { "de" : "Serbien", "en" : "Serbia", "es" : "Serbia", "fr" : "Serbie", "ja" : "セルビア", "pt-BR" : "Sérvia", "ru" : "Сербия", "zh-CN" : "塞尔维亚" } }, "location" : { "accuracy_radius" : 100, "latitude" : 44.81892, "longitude" : 20.45998, "time_zone" : "Europe/Belgrade" }, "registered_country" : { "geoname_id" : 6290252, "iso_code" : "RS", "names" : { "de" : "Serbien", "en" : "Serbia", "es" : "Serbia", "fr" : "Serbie", "ja" : "セルビア", "pt-BR" : "Sérvia", "ru" : "Сербия", "zh-CN" : "塞尔维亚" } } } }, { "2a02:e580::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:e5c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e600::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e620::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e640::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e680::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 248816, "iso_code" : "JO", "names" : { "de" : "Jordanien", "en" : "Hashemite Kingdom of Jordan", "es" : "Jordania", "fr" : "Jordanie", "ja" : "ヨルダン・ハシミテ王国", "pt-BR" : "Jordânia", "ru" : "Иордания", "zh-CN" : "约旦" } }, "location" : { "accuracy_radius" : 100, "latitude" : 31, "longitude" : 36, "time_zone" : "Asia/Amman" }, "registered_country" : { "geoname_id" : 248816, "iso_code" : "JO", "names" : { "de" : "Jordanien", "en" : "Hashemite Kingdom of Jordan", "es" : "Jordania", "fr" : "Jordanie", "ja" : "ヨルダン・ハシミテ王国", "pt-BR" : "Jordânia", "ru" : "Иордания", "zh-CN" : "约旦" } } } }, { "2a02:e6c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e700::/29" : { "continent" : { "code" : "AF", "geoname_id" : 6255146, "names" : { "de" : "Afrika", "en" : "Africa", "es" : "África", "fr" : "Afrique", "ja" : "アフリカ", "pt-BR" : "África", "ru" : "Африка", "zh-CN" : "非洲" } }, "country" : { "geoname_id" : 2215636, "iso_code" : "LY", "names" : { "de" : "Libysch-Arabische Dschamahirija", "en" : "Libya", "es" : "Libia, República Árabe", "fr" : "Libye", "ja" : "社会主義人民リビア・アラブ国", "pt-BR" : "Líbia Árabe Jamahiriya", "ru" : "Ливия", "zh-CN" : "阿拉伯利比亚民众国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 28, "longitude" : 17, "time_zone" : "Africa/Tripoli" }, "registered_country" : { "geoname_id" : 2215636, "iso_code" : "LY", "names" : { "de" : "Libysch-Arabische Dschamahirija", "en" : "Libya", "es" : "Libia, República Árabe", "fr" : "Libye", "ja" : "社会主義人民リビア・アラブ国", "pt-BR" : "Líbia Árabe Jamahiriya", "ru" : "Ливия", "zh-CN" : "阿拉伯利比亚民众国" } } } }, { "2a02:e740::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e780::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "location" : { "accuracy_radius" : 100, "latitude" : 39.05901, "longitude" : 34.91155, "time_zone" : "Europe/Istanbul" }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:e7c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:e800::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e840::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e880::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e900::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2963597, "is_in_european_union" : true, "iso_code" : "IE", "names" : { "de" : "Irland", "en" : "Ireland", "es" : "República de Irlanda", "fr" : "Irlande", "ja" : "アイルランド", "pt-BR" : "Irlanda", "ru" : "Ирландия", "zh-CN" : "爱尔兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 53, "longitude" : -8, "time_zone" : "Europe/Dublin" }, "registered_country" : { "geoname_id" : 2963597, "is_in_european_union" : true, "iso_code" : "IE", "names" : { "de" : "Irland", "en" : "Ireland", "es" : "República de Irlanda", "fr" : "Irlande", "ja" : "アイルランド", "pt-BR" : "Irlanda", "ru" : "Ирландия", "zh-CN" : "爱尔兰" } } } }, { "2a02:e940::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 25, "time_zone" : "Europe/Bucharest" }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } } } }, { "2a02:e980::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } }, "location" : { "accuracy_radius" : 100, "latitude" : 31.5, "longitude" : 34.75, "time_zone" : "Asia/Jerusalem" }, "registered_country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } } } }, { "2a02:e9c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:ea00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47.00016, "longitude" : 8.01427, "time_zone" : "Europe/Zurich" }, "registered_country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } } } }, { "2a02:ea40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:ea80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:eac0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:eb00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:eb40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:eb80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ebc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:ec00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:ec40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ec80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "location" : { "accuracy_radius" : 100, "latitude" : 48.69096, "longitude" : 9.14062, "time_zone" : "Europe/Vaduz" } } }, { "2a02:ecc0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 587116, "iso_code" : "AZ", "names" : { "de" : "Aserbaidschan", "en" : "Azerbaijan", "es" : "Azerbaiyán", "fr" : "Azerbaïdjan", "ja" : "アゼルバイジャン共和国", "pt-BR" : "Azerbaijão", "ru" : "Азербайджан", "zh-CN" : "阿塞拜疆" } }, "location" : { "accuracy_radius" : 100, "latitude" : 40.5, "longitude" : 47.5, "time_zone" : "Asia/Baku" }, "registered_country" : { "geoname_id" : 587116, "iso_code" : "AZ", "names" : { "de" : "Aserbaidschan", "en" : "Azerbaijan", "es" : "Azerbaiyán", "fr" : "Azerbaïdjan", "ja" : "アゼルバイジャン共和国", "pt-BR" : "Azerbaijão", "ru" : "Азербайджан", "zh-CN" : "阿塞拜疆" } } } }, { "2a02:ed00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:ed40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "location" : { "accuracy_radius" : 100, "latitude" : 39.05901, "longitude" : 34.91155, "time_zone" : "Europe/Istanbul" }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:ed80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:edc0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 25, "longitude" : 45, "time_zone" : "Asia/Riyadh" }, "registered_country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } } } }, { "2a02:ee00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 49, "longitude" : 32 }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:ee40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ee80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:eec0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:ef00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ef40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ef80::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "location" : { "accuracy_radius" : 100, "latitude" : 39.05901, "longitude" : 34.91155, "time_zone" : "Europe/Istanbul" }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:efc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f000::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 49.75, "longitude" : 15, "time_zone" : "Europe/Prague" }, "registered_country" : { "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } } } }, { "2a02:f040::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 290291, "iso_code" : "BH", "names" : { "de" : "Bahrain", "en" : "Bahrain", "es" : "Bahréin", "fr" : "Bahreïn", "ja" : "バーレーン", "pt-BR" : "Bahrain", "ru" : "Бахрейн", "zh-CN" : "巴林" } }, "location" : { "accuracy_radius" : 100, "latitude" : 26, "longitude" : 50.5, "time_zone" : "Asia/Bahrain" }, "registered_country" : { "geoname_id" : 290291, "iso_code" : "BH", "names" : { "de" : "Bahrain", "en" : "Bahrain", "es" : "Bahréin", "fr" : "Bahreïn", "ja" : "バーレーン", "pt-BR" : "Bahrain", "ru" : "Бахрейн", "zh-CN" : "巴林" } } } }, { "2a02:f080::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 49, "longitude" : 32 }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:f0a0::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f0c0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 248816, "iso_code" : "JO", "names" : { "de" : "Jordanien", "en" : "Hashemite Kingdom of Jordan", "es" : "Jordania", "fr" : "Jordanie", "ja" : "ヨルダン・ハシミテ王国", "pt-BR" : "Jordânia", "ru" : "Иордания", "zh-CN" : "约旦" } }, "location" : { "accuracy_radius" : 100, "latitude" : 31, "longitude" : 36, "time_zone" : "Asia/Amman" }, "registered_country" : { "geoname_id" : 248816, "iso_code" : "JO", "names" : { "de" : "Jordanien", "en" : "Hashemite Kingdom of Jordan", "es" : "Jordania", "fr" : "Jordanie", "ja" : "ヨルダン・ハシミテ王国", "pt-BR" : "Jordânia", "ru" : "Иордания", "zh-CN" : "约旦" } } } }, { "2a02:f100::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f140::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:f180::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:f1c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 49, "longitude" : 32 }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:f200::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:f240::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 32, "longitude" : 53, "time_zone" : "Asia/Tehran" }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:f280::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 46, "longitude" : 2, "time_zone" : "Europe/Paris" }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:f2c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f300::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:f340::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:f380::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f3c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:f400::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 290557, "iso_code" : "AE", "names" : { "de" : "Vereinigte Arabische Emirate", "en" : "United Arab Emirates", "es" : "Emiratos Árabes Unidos", "fr" : "Émirats Arabes Unis", "ja" : "アラブ首長国連邦", "pt-BR" : "Emirados Árabes Unidos", "ru" : "Объединенные Арабские Эмираты", "zh-CN" : "阿拉伯联合酋长国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 24, "longitude" : 54, "time_zone" : "Asia/Dubai" }, "registered_country" : { "geoname_id" : 290557, "iso_code" : "AE", "names" : { "de" : "Vereinigte Arabische Emirate", "en" : "United Arab Emirates", "es" : "Emiratos Árabes Unidos", "fr" : "Émirats Arabes Unis", "ja" : "アラブ首長国連邦", "pt-BR" : "Emirados Árabes Unidos", "ru" : "Объединенные Арабские Эмираты", "zh-CN" : "阿拉伯联合酋长国" } } } }, { "2a02:f440::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f480::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:f4c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2510769, "is_in_european_union" : true, "iso_code" : "ES", "names" : { "de" : "Spanien", "en" : "Spain", "es" : "España", "fr" : "Espagne", "ja" : "スペイン", "pt-BR" : "Espanha", "ru" : "Испания", "zh-CN" : "西班牙" } }, "location" : { "accuracy_radius" : 100, "latitude" : 40, "longitude" : -4 }, "registered_country" : { "geoname_id" : 2510769, "is_in_european_union" : true, "iso_code" : "ES", "names" : { "de" : "Spanien", "en" : "Spain", "es" : "España", "fr" : "Espagne", "ja" : "スペイン", "pt-BR" : "Espanha", "ru" : "Испания", "zh-CN" : "西班牙" } } } }, { "2a02:f500::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f540::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f560::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f580::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 174982, "iso_code" : "AM", "names" : { "de" : "Armenien", "en" : "Armenia", "es" : "Armenia", "fr" : "Arménie", "ja" : "アルメニア共和国", "pt-BR" : "Armênia", "ru" : "Армения", "zh-CN" : "亚美尼亚" } }, "location" : { "accuracy_radius" : 100, "latitude" : 40, "longitude" : 45, "time_zone" : "Asia/Yerevan" }, "registered_country" : { "geoname_id" : 174982, "iso_code" : "AM", "names" : { "de" : "Armenien", "en" : "Armenia", "es" : "Armenia", "fr" : "Arménie", "ja" : "アルメニア共和国", "pt-BR" : "Armênia", "ru" : "Армения", "zh-CN" : "亚美尼亚" } } } }, { "2a02:f5c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:f600::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:f640::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:f680::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f6c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f700::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 272103, "iso_code" : "LB", "names" : { "de" : "Libanon", "en" : "Lebanon", "es" : "Líbano", "fr" : "Liban", "ja" : "レバノン共和国", "pt-BR" : "Líbano", "ru" : "Ливан", "zh-CN" : "黎巴嫩" } }, "location" : { "accuracy_radius" : 100, "latitude" : 33.83333, "longitude" : 35.83333, "time_zone" : "Asia/Beirut" }, "registered_country" : { "geoname_id" : 272103, "iso_code" : "LB", "names" : { "de" : "Libanon", "en" : "Lebanon", "es" : "Líbano", "fr" : "Liban", "ja" : "レバノン共和国", "pt-BR" : "Líbano", "ru" : "Ливан", "zh-CN" : "黎巴嫩" } } } }, { "2a02:f740::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:f780::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:f7c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:f800::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 60, "longitude" : 100 }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f840::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:f880::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:f8c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:f900::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 32, "longitude" : 53, "time_zone" : "Asia/Tehran" }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:f940::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 719819, "is_in_european_union" : true, "iso_code" : "HU", "names" : { "de" : "Ungarn", "en" : "Hungary", "es" : "Hungría", "fr" : "Hongrie", "ja" : "ハンガリー共和国", "pt-BR" : "Hungria", "ru" : "Венгрия", "zh-CN" : "匈牙利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47, "longitude" : 20, "time_zone" : "Europe/Budapest" }, "registered_country" : { "geoname_id" : 719819, "is_in_european_union" : true, "iso_code" : "HU", "names" : { "de" : "Ungarn", "en" : "Hungary", "es" : "Hungría", "fr" : "Hongrie", "ja" : "ハンガリー共和国", "pt-BR" : "Hungria", "ru" : "Венгрия", "zh-CN" : "匈牙利" } } } }, { "2a02:f980::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f9c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:fa00::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } }, "location" : { "accuracy_radius" : 100, "latitude" : 25, "longitude" : 45, "time_zone" : "Asia/Riyadh" }, "registered_country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } } } }, { "2a02:fa40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "location" : { "accuracy_radius" : 100, "latitude" : 39.05901, "longitude" : 34.91155, "time_zone" : "Europe/Istanbul" }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:fa80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:fac0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:fb00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:fb40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:fb80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 42.83333, "longitude" : 12.83333, "time_zone" : "Europe/Rome" }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:fbc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52, "longitude" : 20, "time_zone" : "Europe/Warsaw" }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:fc00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 15, "time_zone" : "Europe/Stockholm" }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:fc40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2623032, "is_in_european_union" : true, "iso_code" : "DK", "names" : { "de" : "Dänemark", "en" : "Denmark", "es" : "Dinamarca", "fr" : "Danemark", "ja" : "デンマーク王国", "pt-BR" : "Dinamarca", "ru" : "Дания", "zh-CN" : "丹麦" } }, "location" : { "accuracy_radius" : 100, "latitude" : 56, "longitude" : 10, "time_zone" : "Europe/Copenhagen" }, "registered_country" : { "geoname_id" : 2623032, "is_in_european_union" : true, "iso_code" : "DK", "names" : { "de" : "Dänemark", "en" : "Denmark", "es" : "Dinamarca", "fr" : "Danemark", "ja" : "デンマーク王国", "pt-BR" : "Dinamarca", "ru" : "Дания", "zh-CN" : "丹麦" } } } }, { "2a02:fc80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "location" : { "accuracy_radius" : 100, "latitude" : 62, "longitude" : 10, "time_zone" : "Europe/Oslo" }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:fcc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:fd00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:fd40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 42.83333, "longitude" : 12.83333, "time_zone" : "Europe/Rome" }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:fd80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2623032, "is_in_european_union" : true, "iso_code" : "DK", "names" : { "de" : "Dänemark", "en" : "Denmark", "es" : "Dinamarca", "fr" : "Danemark", "ja" : "デンマーク王国", "pt-BR" : "Dinamarca", "ru" : "Дания", "zh-CN" : "丹麦" } }, "location" : { "accuracy_radius" : 100, "latitude" : 56, "longitude" : 10, "time_zone" : "Europe/Copenhagen" }, "registered_country" : { "geoname_id" : 2623032, "is_in_european_union" : true, "iso_code" : "DK", "names" : { "de" : "Dänemark", "en" : "Denmark", "es" : "Dinamarca", "fr" : "Danemark", "ja" : "デンマーク王国", "pt-BR" : "Dinamarca", "ru" : "Дания", "zh-CN" : "丹麦" } } } }, { "2a02:fdc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 47.33333, "longitude" : 13.33333, "time_zone" : "Europe/Vienna" }, "registered_country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } } } }, { "2a02:fe00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "location" : { "accuracy_radius" : 100, "latitude" : 52.5, "longitude" : 5.75, "time_zone" : "Europe/Amsterdam" }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:fe40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:fe80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 42.83333, "longitude" : 12.83333, "time_zone" : "Europe/Rome" }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:fec0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.75844, "longitude" : -2.69531, "time_zone" : "Europe/London" }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:ff00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "location" : { "accuracy_radius" : 100, "latitude" : 42.83333, "longitude" : 12.83333, "time_zone" : "Europe/Rome" }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:ff40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3042225, "iso_code" : "IM", "names" : { "de" : "Insel Man", "en" : "Isle of Man", "es" : "Isla de Man", "fr" : "Île de Man", "ja" : "マン島", "pt-BR" : "Ilha de Man", "ru" : "Мэн, о-в", "zh-CN" : "曼岛" } }, "location" : { "accuracy_radius" : 100, "latitude" : 54.25, "longitude" : -4.5, "time_zone" : "Europe/Isle_of_Man" }, "registered_country" : { "geoname_id" : 3042225, "iso_code" : "IM", "names" : { "de" : "Insel Man", "en" : "Isle of Man", "es" : "Isla de Man", "fr" : "Île de Man", "ja" : "マン島", "pt-BR" : "Ilha de Man", "ru" : "Мэн, о-в", "zh-CN" : "曼岛" } } } }, { "2a02:ff80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "location" : { "accuracy_radius" : 100, "latitude" : 51.5, "longitude" : 10.5, "time_zone" : "Europe/Berlin" }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:ffc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2411586, "iso_code" : "GI", "names" : { "de" : "Gibraltar", "en" : "Gibraltar", "es" : "Gibraltar", "fr" : "Gibraltar", "ja" : "ジブラルタル", "pt-BR" : "Gibraltar", "ru" : "Гибралтар" } }, "location" : { "accuracy_radius" : 100, "latitude" : 36.13333, "longitude" : -5.35, "time_zone" : "Europe/Gibraltar" }, "registered_country" : { "geoname_id" : 2411586, "iso_code" : "GI", "names" : { "de" : "Gibraltar", "en" : "Gibraltar", "es" : "Gibraltar", "fr" : "Gibraltar", "ja" : "ジブラルタル", "pt-BR" : "Gibraltar", "ru" : "Гибралтар" } } } } ] golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/source-data/GeoLite2-Country-Test.json000066400000000000000000012113301507532544400325670ustar00rootroot00000000000000[ { "2.125.160.216/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "50.114.0.0/22" : { "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "América del Norte", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } } } }, { "67.43.156.0/24" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1252634, "iso_code" : "BT", "names" : { "de" : "Bhutan", "en" : "Bhutan", "es" : "Bután", "fr" : "Bhutan", "ja" : "ブータン王国", "pt-BR" : "Butão", "ru" : "Бутан", "zh-CN" : "不丹" } }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "traits" : { "is_anonymous_proxy" : true } } }, { "81.2.69.142/31" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } } } }, { "81.2.69.144/28" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } } } }, { "81.2.69.160/27" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } } } }, { "81.2.69.192/28" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } } } }, { "89.160.20.112/28" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "89.160.20.128/25" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "111.235.160.0/22" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "202.196.224.0/20" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1694008, "iso_code" : "PH", "names" : { "de" : "Philippinen", "en" : "Philippines", "es" : "Filipinas", "fr" : "Philippines", "ja" : "フィリピン共和国", "pt-BR" : "Filipinas", "ru" : "Филиппины", "zh-CN" : "菲律宾" } }, "registered_country" : { "geoname_id" : 1694008, "iso_code" : "PH", "names" : { "de" : "Philippinen", "en" : "Philippines", "es" : "Filipinas", "fr" : "Philippines", "ja" : "フィリピン共和国", "pt-BR" : "Filipinas", "ru" : "Филиппины", "zh-CN" : "菲律宾" } }, "represented_country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" }, "type" : "military" } } }, { "216.160.83.56/29" : { "continent" : { "code" : "NA", "geoname_id" : 6255149, "names" : { "de" : "Nordamerika", "en" : "North America", "es" : "América del Norte", "fr" : "Amérique du Nord", "ja" : "北アメリカ", "pt-BR" : "América do Norte", "ru" : "Северная Америка", "zh-CN" : "北美洲" } }, "country" : { "geoname_id" : 6252001, "iso_code" : "US", "names" : { "de" : "USA", "en" : "United States", "es" : "Estados Unidos", "fr" : "États-Unis", "ja" : "アメリカ合衆国", "pt-BR" : "Estados Unidos", "ru" : "США", "zh-CN" : "美国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "217.65.48.0/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2411586, "iso_code" : "GI", "names" : { "de" : "Gibraltar", "en" : "Gibraltar", "es" : "Gibraltar", "fr" : "Gibraltar", "ja" : "ジブラルタル", "pt-BR" : "Gibraltar", "ru" : "Гибралтар" } }, "registered_country" : { "geoname_id" : 2411586, "iso_code" : "GI", "names" : { "de" : "Gibraltar", "en" : "Gibraltar", "es" : "Gibraltar", "fr" : "Gibraltar", "ja" : "ジブラルタル", "pt-BR" : "Gibraltar", "ru" : "Гибралтар" } } } }, { "2001:218::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:220::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:230::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:238::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1668284, "iso_code" : "TW", "names" : { "de" : "Taiwan", "en" : "Taiwan", "es" : "Taiwán", "fr" : "Taïwan", "ja" : "台湾", "pt-BR" : "Taiwan", "ru" : "Тайвань", "zh-CN" : "台湾" } }, "registered_country" : { "geoname_id" : 1668284, "iso_code" : "TW", "names" : { "de" : "Taiwan", "en" : "Taiwan", "es" : "Taiwán", "fr" : "Taïwan", "ja" : "台湾", "pt-BR" : "Taiwan", "ru" : "Тайвань", "zh-CN" : "台湾" } } } }, { "2001:240::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:250::/31" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "2001:252::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "2001:254::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "2001:256::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } }, "registered_country" : { "geoname_id" : 1814991, "iso_code" : "CN", "names" : { "de" : "China", "en" : "People's Republic of China", "es" : "República Popular China", "fr" : "Chine", "ja" : "中国", "pt-BR" : "China", "ru" : "Китай", "zh-CN" : "中国" } } } }, { "2001:258::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:260::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:268::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:270::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:278::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:280::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:288::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1668284, "iso_code" : "TW", "names" : { "de" : "Taiwan", "en" : "Taiwan", "es" : "Taiwán", "fr" : "Taïwan", "ja" : "台湾", "pt-BR" : "Taiwan", "ru" : "Тайвань", "zh-CN" : "台湾" } }, "registered_country" : { "geoname_id" : 1668284, "iso_code" : "TW", "names" : { "de" : "Taiwan", "en" : "Taiwan", "es" : "Taiwán", "fr" : "Taïwan", "ja" : "台湾", "pt-BR" : "Taiwan", "ru" : "Тайвань", "zh-CN" : "台湾" } } } }, { "2001:290::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:298::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2a0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2a8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2b0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:2b8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:2c0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2c8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2d8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } }, "registered_country" : { "geoname_id" : 1835841, "iso_code" : "KR", "names" : { "de" : "Republik Korea", "en" : "South Korea", "es" : "Corea, República de", "fr" : "Corée du Sud", "ja" : "大韓民国", "pt-BR" : "Coréia, República da", "ru" : "Южная Корея", "zh-CN" : "韩国" } } } }, { "2001:2e0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1819730, "iso_code" : "HK", "names" : { "de" : "Hongkong", "en" : "Hong Kong", "es" : "Hong Kong", "fr" : "Hong Kong", "ja" : "香港", "pt-BR" : "Hong Kong", "ru" : "Гонконг", "zh-CN" : "香港" } }, "registered_country" : { "geoname_id" : 1819730, "iso_code" : "HK", "names" : { "de" : "Hongkong", "en" : "Hong Kong", "es" : "Hong Kong", "fr" : "Hong Kong", "ja" : "香港", "pt-BR" : "Hong Kong", "ru" : "Гонконг", "zh-CN" : "香港" } } } }, { "2001:2e8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2f0::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2001:2f8::/32" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } }, "registered_country" : { "geoname_id" : 1861060, "iso_code" : "JP", "names" : { "de" : "Japan", "en" : "Japan", "es" : "Japón", "fr" : "Japon", "ja" : "日本", "pt-BR" : "Japão", "ru" : "Япония", "zh-CN" : "日本" } } } }, { "2a02:cf40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:cf80::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } }, "registered_country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } } } }, { "2a02:cfc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d000::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } }, "registered_country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } } } }, { "2a02:d040::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:d080::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 290291, "iso_code" : "BH", "names" : { "de" : "Bahrain", "en" : "Bahrain", "es" : "Bahréin", "fr" : "Bahreïn", "ja" : "バーレーン", "pt-BR" : "Bahrain", "ru" : "Бахрейн", "zh-CN" : "巴林" } }, "registered_country" : { "geoname_id" : 290291, "iso_code" : "BH", "names" : { "de" : "Bahrain", "en" : "Bahrain", "es" : "Bahréin", "fr" : "Bahreïn", "ja" : "バーレーン", "pt-BR" : "Bahrain", "ru" : "Бахрейн", "zh-CN" : "巴林" } } } }, { "2a02:d0c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:d100::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:d140::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:d180::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d1c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:d200::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 660013, "is_in_european_union" : true, "iso_code" : "FI", "names" : { "de" : "Finnland", "en" : "Finland", "es" : "Finlandia", "fr" : "Finlande", "ja" : "フィンランド共和国", "pt-BR" : "Finlândia", "ru" : "Финляндия", "zh-CN" : "芬兰" } }, "registered_country" : { "geoname_id" : 660013, "is_in_european_union" : true, "iso_code" : "FI", "names" : { "de" : "Finnland", "en" : "Finland", "es" : "Finlandia", "fr" : "Finlande", "ja" : "フィンランド共和国", "pt-BR" : "Finlândia", "ru" : "Финляндия", "zh-CN" : "芬兰" } } } }, { "2a02:d240::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 630336, "iso_code" : "BY", "names" : { "de" : "Weißrussland", "en" : "Belarus", "es" : "Bielorrusia", "fr" : "Biélorussie", "ja" : "ベラルーシ共和国", "pt-BR" : "Bielo-Rússia", "ru" : "Беларусь", "zh-CN" : "白俄罗斯" } }, "registered_country" : { "geoname_id" : 630336, "iso_code" : "BY", "names" : { "de" : "Weißrussland", "en" : "Belarus", "es" : "Bielorrusia", "fr" : "Biélorussie", "ja" : "ベラルーシ共和国", "pt-BR" : "Bielo-Rússia", "ru" : "Беларусь", "zh-CN" : "白俄罗斯" } } } }, { "2a02:d280::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } }, "registered_country" : { "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } } } }, { "2a02:d2c0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:d300::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:d340::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d380::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:d3c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:d400::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 719819, "is_in_european_union" : true, "iso_code" : "HU", "names" : { "de" : "Ungarn", "en" : "Hungary", "es" : "Hungría", "fr" : "Hongrie", "ja" : "ハンガリー共和国", "pt-BR" : "Hungria", "ru" : "Венгрия", "zh-CN" : "匈牙利" } }, "registered_country" : { "geoname_id" : 719819, "is_in_european_union" : true, "iso_code" : "HU", "names" : { "de" : "Ungarn", "en" : "Hungary", "es" : "Hungría", "fr" : "Hongrie", "ja" : "ハンガリー共和国", "pt-BR" : "Hungria", "ru" : "Венгрия", "zh-CN" : "匈牙利" } } } }, { "2a02:d440::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:d480::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d4c0::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 660013, "is_in_european_union" : true, "iso_code" : "FI", "names" : { "de" : "Finnland", "en" : "Finland", "es" : "Finlandia", "fr" : "Finlande", "ja" : "フィンランド共和国", "pt-BR" : "Finlândia", "ru" : "Финляндия", "zh-CN" : "芬兰" } }, "registered_country" : { "geoname_id" : 660013, "is_in_european_union" : true, "iso_code" : "FI", "names" : { "de" : "Finnland", "en" : "Finland", "es" : "Finlandia", "fr" : "Finlande", "ja" : "フィンランド共和国", "pt-BR" : "Finlândia", "ru" : "Финляндия", "zh-CN" : "芬兰" } } } }, { "2a02:d4e0::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d500::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } } } }, { "2a02:d540::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:d580::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d5c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2510769, "is_in_european_union" : true, "iso_code" : "ES", "names" : { "de" : "Spanien", "en" : "Spain", "es" : "España", "fr" : "Espagne", "ja" : "スペイン", "pt-BR" : "Espanha", "ru" : "Испания", "zh-CN" : "西班牙" } }, "registered_country" : { "geoname_id" : 2510769, "is_in_european_union" : true, "iso_code" : "ES", "names" : { "de" : "Spanien", "en" : "Spain", "es" : "España", "fr" : "Espagne", "ja" : "スペイン", "pt-BR" : "Espanha", "ru" : "Испания", "zh-CN" : "西班牙" } } } }, { "2a02:d600::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d640::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d680::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:d6a0::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d6c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 732800, "is_in_european_union" : true, "iso_code" : "BG", "names" : { "de" : "Bulgarien", "en" : "Bulgaria", "es" : "Bulgaria", "fr" : "Bulgarie", "ja" : "ブルガリア共和国", "pt-BR" : "Bulgária", "ru" : "Болгария", "zh-CN" : "保加利亚" } }, "registered_country" : { "geoname_id" : 732800, "is_in_european_union" : true, "iso_code" : "BG", "names" : { "de" : "Bulgarien", "en" : "Bulgaria", "es" : "Bulgaria", "fr" : "Bulgarie", "ja" : "ブルガリア共和国", "pt-BR" : "Bulgária", "ru" : "Болгария", "zh-CN" : "保加利亚" } } } }, { "2a02:d700::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:d740::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } }, "registered_country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } } } }, { "2a02:d780::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:d7c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:d800::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } } } }, { "2a02:d840::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:d880::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:d8c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:d900::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:d940::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2802361, "is_in_european_union" : true, "iso_code" : "BE", "names" : { "de" : "Belgien", "en" : "Belgium", "es" : "Bélgica", "fr" : "Belgique", "ja" : "ベルギー王国", "pt-BR" : "Bélgica", "ru" : "Бельгия", "zh-CN" : "比利时" } }, "registered_country" : { "geoname_id" : 2802361, "is_in_european_union" : true, "iso_code" : "BE", "names" : { "de" : "Belgien", "en" : "Belgium", "es" : "Bélgica", "fr" : "Belgique", "ja" : "ベルギー王国", "pt-BR" : "Bélgica", "ru" : "Бельгия", "zh-CN" : "比利时" } } } }, { "2a02:d980::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:d9c0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:da00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:da40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:da80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } }, "registered_country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } } } }, { "2a02:dac0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:db00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:db40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } } } }, { "2a02:db80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dbc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dc00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dc40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:dc80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dcc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:dd00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 783754, "iso_code" : "AL", "names" : { "de" : "Albanien", "en" : "Albania", "es" : "Albania", "fr" : "Albanie", "ja" : "アルバニア共和国", "pt-BR" : "Albânia", "ru" : "Албания", "zh-CN" : "阿尔巴尼亚" } }, "registered_country" : { "geoname_id" : 783754, "iso_code" : "AL", "names" : { "de" : "Albanien", "en" : "Albania", "es" : "Albania", "fr" : "Albanie", "ja" : "アルバニア共和国", "pt-BR" : "Albânia", "ru" : "Албания", "zh-CN" : "阿尔巴尼亚" } } } }, { "2a02:dd40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:dd80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:ddc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:de00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:de40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } }, "registered_country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } } } }, { "2a02:de80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:dec0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 272103, "iso_code" : "LB", "names" : { "de" : "Libanon", "en" : "Lebanon", "es" : "Líbano", "fr" : "Liban", "ja" : "レバノン共和国", "pt-BR" : "Líbano", "ru" : "Ливан", "zh-CN" : "黎巴嫩" } }, "registered_country" : { "geoname_id" : 272103, "iso_code" : "LB", "names" : { "de" : "Libanon", "en" : "Lebanon", "es" : "Líbano", "fr" : "Liban", "ja" : "レバノン共和国", "pt-BR" : "Líbano", "ru" : "Ливан", "zh-CN" : "黎巴嫩" } } } }, { "2a02:df00::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:df40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:df80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:dfc0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:e000::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e040::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:e080::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 285570, "iso_code" : "KW", "names" : { "de" : "Kuwait", "en" : "Kuwait", "es" : "Kuwait", "fr" : "Koweït", "ja" : "クウェート", "pt-BR" : "Kuwait", "ru" : "Кувейт", "zh-CN" : "科威特" } }, "registered_country" : { "geoname_id" : 285570, "iso_code" : "KW", "names" : { "de" : "Kuwait", "en" : "Kuwait", "es" : "Kuwait", "fr" : "Koweït", "ja" : "クウェート", "pt-BR" : "Kuwait", "ru" : "Кувейт", "zh-CN" : "科威特" } } } }, { "2a02:e0c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } }, "registered_country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } } } }, { "2a02:e100::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:e140::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:e180::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:e1c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:e200::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } }, "registered_country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } } } }, { "2a02:e220::/30" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } }, "registered_country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } } } }, { "2a02:e240::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e280::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e2c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:e300::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 630336, "iso_code" : "BY", "names" : { "de" : "Weißrussland", "en" : "Belarus", "es" : "Bielorrusia", "fr" : "Biélorussie", "ja" : "ベラルーシ共和国", "pt-BR" : "Bielo-Rússia", "ru" : "Беларусь", "zh-CN" : "白俄罗斯" } }, "registered_country" : { "geoname_id" : 630336, "iso_code" : "BY", "names" : { "de" : "Weißrussland", "en" : "Belarus", "es" : "Bielorrusia", "fr" : "Biélorussie", "ja" : "ベラルーシ共和国", "pt-BR" : "Bielo-Rússia", "ru" : "Беларусь", "zh-CN" : "白俄罗斯" } } } }, { "2a02:e340::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:e380::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:e3c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e400::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:e440::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e480::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e4c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:e500::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e540::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 6290252, "iso_code" : "RS", "names" : { "de" : "Serbien", "en" : "Serbia", "es" : "Serbia", "fr" : "Serbie", "ja" : "セルビア", "pt-BR" : "Sérvia", "ru" : "Сербия", "zh-CN" : "塞尔维亚" } }, "registered_country" : { "geoname_id" : 6290252, "iso_code" : "RS", "names" : { "de" : "Serbien", "en" : "Serbia", "es" : "Serbia", "fr" : "Serbie", "ja" : "セルビア", "pt-BR" : "Sérvia", "ru" : "Сербия", "zh-CN" : "塞尔维亚" } } } }, { "2a02:e580::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:e5c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e600::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e620::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e640::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:e680::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 248816, "iso_code" : "JO", "names" : { "de" : "Jordanien", "en" : "Hashemite Kingdom of Jordan", "es" : "Jordania", "fr" : "Jordanie", "ja" : "ヨルダン・ハシミテ王国", "pt-BR" : "Jordânia", "ru" : "Иордания", "zh-CN" : "约旦" } }, "registered_country" : { "geoname_id" : 248816, "iso_code" : "JO", "names" : { "de" : "Jordanien", "en" : "Hashemite Kingdom of Jordan", "es" : "Jordania", "fr" : "Jordanie", "ja" : "ヨルダン・ハシミテ王国", "pt-BR" : "Jordânia", "ru" : "Иордания", "zh-CN" : "约旦" } } } }, { "2a02:e6c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e700::/29" : { "continent" : { "code" : "AF", "geoname_id" : 6255146, "names" : { "de" : "Afrika", "en" : "Africa", "es" : "África", "fr" : "Afrique", "ja" : "アフリカ", "pt-BR" : "África", "ru" : "Африка", "zh-CN" : "非洲" } }, "country" : { "geoname_id" : 2215636, "iso_code" : "LY", "names" : { "de" : "Libysch-Arabische Dschamahirija", "en" : "Libya", "es" : "Libia, República Árabe", "fr" : "Libye", "ja" : "社会主義人民リビア・アラブ国", "pt-BR" : "Líbia Árabe Jamahiriya", "ru" : "Ливия", "zh-CN" : "阿拉伯利比亚民众国" } }, "registered_country" : { "geoname_id" : 2215636, "iso_code" : "LY", "names" : { "de" : "Libysch-Arabische Dschamahirija", "en" : "Libya", "es" : "Libia, República Árabe", "fr" : "Libye", "ja" : "社会主義人民リビア・アラブ国", "pt-BR" : "Líbia Árabe Jamahiriya", "ru" : "Ливия", "zh-CN" : "阿拉伯利比亚民众国" } } } }, { "2a02:e740::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e780::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:e7c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:e800::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:e840::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e880::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:e900::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2963597, "is_in_european_union" : true, "iso_code" : "IE", "names" : { "de" : "Irland", "en" : "Ireland", "es" : "República de Irlanda", "fr" : "Irlande", "ja" : "アイルランド", "pt-BR" : "Irlanda", "ru" : "Ирландия", "zh-CN" : "爱尔兰" } }, "registered_country" : { "geoname_id" : 2963597, "is_in_european_union" : true, "iso_code" : "IE", "names" : { "de" : "Irland", "en" : "Ireland", "es" : "República de Irlanda", "fr" : "Irlande", "ja" : "アイルランド", "pt-BR" : "Irlanda", "ru" : "Ирландия", "zh-CN" : "爱尔兰" } } } }, { "2a02:e940::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } }, "registered_country" : { "geoname_id" : 798549, "is_in_european_union" : true, "iso_code" : "RO", "names" : { "de" : "Rumänien", "en" : "Romania", "es" : "Rumanía", "fr" : "Roumanie", "ja" : "ルーマニア", "pt-BR" : "Romênia", "ru" : "Румыния", "zh-CN" : "罗马尼亚" } } } }, { "2a02:e980::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } }, "registered_country" : { "geoname_id" : 294640, "iso_code" : "IL", "names" : { "de" : "Israel", "en" : "Israel", "es" : "Israel", "fr" : "Israël", "ja" : "イスラエル国", "pt-BR" : "Israel", "ru" : "Израиль", "zh-CN" : "以色列" } } } }, { "2a02:e9c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:ea00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } }, "registered_country" : { "geoname_id" : 2658434, "iso_code" : "CH", "names" : { "de" : "Schweiz", "en" : "Switzerland", "es" : "Suiza", "fr" : "Suisse", "ja" : "スイス連邦", "pt-BR" : "Suíça", "ru" : "Швейцария", "zh-CN" : "瑞士" } } } }, { "2a02:ea40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:ea80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:eac0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:eb00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:eb40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:eb80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ebc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:ec00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:ec40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ec80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } } } }, { "2a02:ecc0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 587116, "iso_code" : "AZ", "names" : { "de" : "Aserbaidschan", "en" : "Azerbaijan", "es" : "Azerbaiyán", "fr" : "Azerbaïdjan", "ja" : "アゼルバイジャン共和国", "pt-BR" : "Azerbaijão", "ru" : "Азербайджан", "zh-CN" : "阿塞拜疆" } }, "registered_country" : { "geoname_id" : 587116, "iso_code" : "AZ", "names" : { "de" : "Aserbaidschan", "en" : "Azerbaijan", "es" : "Azerbaiyán", "fr" : "Azerbaïdjan", "ja" : "アゼルバイジャン共和国", "pt-BR" : "Azerbaijão", "ru" : "Азербайджан", "zh-CN" : "阿塞拜疆" } } } }, { "2a02:ed00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:ed40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:ed80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:edc0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } }, "registered_country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } } } }, { "2a02:ee00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:ee40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ee80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:eec0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:ef00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ef40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:ef80::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:efc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f000::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } }, "registered_country" : { "geoname_id" : 3077311, "is_in_european_union" : true, "iso_code" : "CZ", "names" : { "de" : "Tschechische Republik", "en" : "Czech Republic", "es" : "República Checa", "fr" : "Tchéquie", "ja" : "チェコ共和国", "pt-BR" : "República Checa", "ru" : "Чешская Республика", "zh-CN" : "捷克共和国" } } } }, { "2a02:f040::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 290291, "iso_code" : "BH", "names" : { "de" : "Bahrain", "en" : "Bahrain", "es" : "Bahréin", "fr" : "Bahreïn", "ja" : "バーレーン", "pt-BR" : "Bahrain", "ru" : "Бахрейн", "zh-CN" : "巴林" } }, "registered_country" : { "geoname_id" : 290291, "iso_code" : "BH", "names" : { "de" : "Bahrain", "en" : "Bahrain", "es" : "Bahréin", "fr" : "Bahreïn", "ja" : "バーレーン", "pt-BR" : "Bahrain", "ru" : "Бахрейн", "zh-CN" : "巴林" } } } }, { "2a02:f080::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:f0a0::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f0c0::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 248816, "iso_code" : "JO", "names" : { "de" : "Jordanien", "en" : "Hashemite Kingdom of Jordan", "es" : "Jordania", "fr" : "Jordanie", "ja" : "ヨルダン・ハシミテ王国", "pt-BR" : "Jordânia", "ru" : "Иордания", "zh-CN" : "约旦" } }, "registered_country" : { "geoname_id" : 248816, "iso_code" : "JO", "names" : { "de" : "Jordanien", "en" : "Hashemite Kingdom of Jordan", "es" : "Jordania", "fr" : "Jordanie", "ja" : "ヨルダン・ハシミテ王国", "pt-BR" : "Jordânia", "ru" : "Иордания", "zh-CN" : "约旦" } } } }, { "2a02:f100::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f140::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:f180::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:f1c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } }, "registered_country" : { "geoname_id" : 690791, "iso_code" : "UA", "names" : { "de" : "Ukraine", "en" : "Ukraine", "es" : "Ucrania", "fr" : "Ukraine", "ja" : "ウクライナ共和国", "pt-BR" : "Ucrânia", "ru" : "Украина", "zh-CN" : "乌克兰" } } } }, { "2a02:f200::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:f240::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:f280::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } }, "registered_country" : { "geoname_id" : 3017382, "is_in_european_union" : true, "iso_code" : "FR", "names" : { "de" : "Frankreich", "en" : "France", "es" : "Francia", "fr" : "France", "ja" : "フランス共和国", "pt-BR" : "França", "ru" : "Франция", "zh-CN" : "法国" } } } }, { "2a02:f2c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f300::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:f340::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:f380::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f3c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:f400::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 290557, "iso_code" : "AE", "names" : { "de" : "Vereinigte Arabische Emirate", "en" : "United Arab Emirates", "es" : "Emiratos Árabes Unidos", "fr" : "Émirats Arabes Unis", "ja" : "アラブ首長国連邦", "pt-BR" : "Emirados Árabes Unidos", "ru" : "Объединенные Арабские Эмираты", "zh-CN" : "阿拉伯联合酋长国" } }, "registered_country" : { "geoname_id" : 290557, "iso_code" : "AE", "names" : { "de" : "Vereinigte Arabische Emirate", "en" : "United Arab Emirates", "es" : "Emiratos Árabes Unidos", "fr" : "Émirats Arabes Unis", "ja" : "アラブ首長国連邦", "pt-BR" : "Emirados Árabes Unidos", "ru" : "Объединенные Арабские Эмираты", "zh-CN" : "阿拉伯联合酋长国" } } } }, { "2a02:f440::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f480::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:f4c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2510769, "is_in_european_union" : true, "iso_code" : "ES", "names" : { "de" : "Spanien", "en" : "Spain", "es" : "España", "fr" : "Espagne", "ja" : "スペイン", "pt-BR" : "Espanha", "ru" : "Испания", "zh-CN" : "西班牙" } }, "registered_country" : { "geoname_id" : 2510769, "is_in_european_union" : true, "iso_code" : "ES", "names" : { "de" : "Spanien", "en" : "Spain", "es" : "España", "fr" : "Espagne", "ja" : "スペイン", "pt-BR" : "Espanha", "ru" : "Испания", "zh-CN" : "西班牙" } } } }, { "2a02:f500::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f540::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f560::/30" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f580::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 174982, "iso_code" : "AM", "names" : { "de" : "Armenien", "en" : "Armenia", "es" : "Armenia", "fr" : "Arménie", "ja" : "アルメニア共和国", "pt-BR" : "Armênia", "ru" : "Армения", "zh-CN" : "亚美尼亚" } }, "registered_country" : { "geoname_id" : 174982, "iso_code" : "AM", "names" : { "de" : "Armenien", "en" : "Armenia", "es" : "Armenia", "fr" : "Arménie", "ja" : "アルメニア共和国", "pt-BR" : "Armênia", "ru" : "Армения", "zh-CN" : "亚美尼亚" } } } }, { "2a02:f5c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:f600::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:f640::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:f680::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f6c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f700::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 272103, "iso_code" : "LB", "names" : { "de" : "Libanon", "en" : "Lebanon", "es" : "Líbano", "fr" : "Liban", "ja" : "レバノン共和国", "pt-BR" : "Líbano", "ru" : "Ливан", "zh-CN" : "黎巴嫩" } }, "registered_country" : { "geoname_id" : 272103, "iso_code" : "LB", "names" : { "de" : "Libanon", "en" : "Lebanon", "es" : "Líbano", "fr" : "Liban", "ja" : "レバノン共和国", "pt-BR" : "Líbano", "ru" : "Ливан", "zh-CN" : "黎巴嫩" } } } }, { "2a02:f740::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:f780::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:f7c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:f800::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } }, "registered_country" : { "geoname_id" : 2017370, "iso_code" : "RU", "names" : { "de" : "Russland", "en" : "Russia", "es" : "Rusia", "fr" : "Russie", "ja" : "ロシア", "pt-BR" : "Rússia", "ru" : "Россия", "zh-CN" : "俄罗斯" } } } }, { "2a02:f840::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:f880::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:f8c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:f900::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } }, "registered_country" : { "geoname_id" : 130758, "iso_code" : "IR", "names" : { "de" : "Iran (Islamische Republik)", "en" : "Iran", "es" : "Irán (República Islámica)", "fr" : "Iran (République islamique de)", "ja" : "イラン・イスラム共和国", "pt-BR" : "República Islâmica do Irã", "ru" : "Иран", "zh-CN" : "伊朗伊斯兰共和国" } } } }, { "2a02:f940::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 719819, "is_in_european_union" : true, "iso_code" : "HU", "names" : { "de" : "Ungarn", "en" : "Hungary", "es" : "Hungría", "fr" : "Hongrie", "ja" : "ハンガリー共和国", "pt-BR" : "Hungria", "ru" : "Венгрия", "zh-CN" : "匈牙利" } }, "registered_country" : { "geoname_id" : 719819, "is_in_european_union" : true, "iso_code" : "HU", "names" : { "de" : "Ungarn", "en" : "Hungary", "es" : "Hungría", "fr" : "Hongrie", "ja" : "ハンガリー共和国", "pt-BR" : "Hungria", "ru" : "Венгрия", "zh-CN" : "匈牙利" } } } }, { "2a02:f980::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:f9c0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:fa00::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } }, "registered_country" : { "geoname_id" : 102358, "iso_code" : "SA", "names" : { "de" : "Saudi-Arabien", "en" : "Saudi Arabia", "es" : "Arabia Saudita", "fr" : "Arabie saoudite", "ja" : "サウジアラビア王国", "pt-BR" : "Arábia Saudita", "ru" : "Саудовская Аравия", "zh-CN" : "沙特阿拉伯" } } } }, { "2a02:fa40::/29" : { "continent" : { "code" : "AS", "geoname_id" : 6255147, "names" : { "de" : "Asien", "en" : "Asia", "es" : "Asia", "fr" : "Asie", "ja" : "アジア", "pt-BR" : "Ásia", "ru" : "Азия", "zh-CN" : "亚洲" } }, "country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } }, "registered_country" : { "geoname_id" : 298795, "iso_code" : "TR", "names" : { "de" : "Türkei", "en" : "Turkey", "es" : "Turquía", "fr" : "Turquie", "ja" : "トルコ共和国", "pt-BR" : "Turquia", "ru" : "Турция", "zh-CN" : "土耳其" } } } }, { "2a02:fa80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:fac0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:fb00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:fb40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:fb80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:fbc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } }, "registered_country" : { "geoname_id" : 798544, "is_in_european_union" : true, "iso_code" : "PL", "names" : { "de" : "Polen", "en" : "Poland", "es" : "Polonia", "fr" : "Pologne", "ja" : "ポーランド共和国", "pt-BR" : "Polônia", "ru" : "Польша", "zh-CN" : "波兰" } } } }, { "2a02:fc00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } }, "registered_country" : { "geoname_id" : 2661886, "is_in_european_union" : true, "iso_code" : "SE", "names" : { "de" : "Schweden", "en" : "Sweden", "es" : "Suecia", "fr" : "Suède", "ja" : "スウェーデン王国", "pt-BR" : "Suécia", "ru" : "Швеция", "zh-CN" : "瑞典" } } } }, { "2a02:fc40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2623032, "is_in_european_union" : true, "iso_code" : "DK", "names" : { "de" : "Dänemark", "en" : "Denmark", "es" : "Dinamarca", "fr" : "Danemark", "ja" : "デンマーク王国", "pt-BR" : "Dinamarca", "ru" : "Дания", "zh-CN" : "丹麦" } }, "registered_country" : { "geoname_id" : 2623032, "is_in_european_union" : true, "iso_code" : "DK", "names" : { "de" : "Dänemark", "en" : "Denmark", "es" : "Dinamarca", "fr" : "Danemark", "ja" : "デンマーク王国", "pt-BR" : "Dinamarca", "ru" : "Дания", "zh-CN" : "丹麦" } } } }, { "2a02:fc80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } }, "registered_country" : { "geoname_id" : 3144096, "iso_code" : "NO", "names" : { "de" : "Norwegen", "en" : "Norway", "es" : "Noruega", "fr" : "Norvège", "ja" : "ノルウェー王国", "pt-BR" : "Noruega", "ru" : "Норвегия", "zh-CN" : "挪威" } } } }, { "2a02:fcc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:fd00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:fd40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:fd80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2623032, "is_in_european_union" : true, "iso_code" : "DK", "names" : { "de" : "Dänemark", "en" : "Denmark", "es" : "Dinamarca", "fr" : "Danemark", "ja" : "デンマーク王国", "pt-BR" : "Dinamarca", "ru" : "Дания", "zh-CN" : "丹麦" } }, "registered_country" : { "geoname_id" : 2623032, "is_in_european_union" : true, "iso_code" : "DK", "names" : { "de" : "Dänemark", "en" : "Denmark", "es" : "Dinamarca", "fr" : "Danemark", "ja" : "デンマーク王国", "pt-BR" : "Dinamarca", "ru" : "Дания", "zh-CN" : "丹麦" } } } }, { "2a02:fdc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } }, "registered_country" : { "geoname_id" : 2782113, "is_in_european_union" : true, "iso_code" : "AT", "names" : { "de" : "Österreich", "en" : "Austria", "es" : "Austria", "fr" : "Autriche", "ja" : "オーストリア共和国", "pt-BR" : "Áustria", "ru" : "Австрия", "zh-CN" : "奥地利" } } } }, { "2a02:fe00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } }, "registered_country" : { "geoname_id" : 2750405, "is_in_european_union" : true, "iso_code" : "NL", "names" : { "de" : "Niederlande", "en" : "Netherlands", "es" : "Holanda", "fr" : "Pays-Bas", "ja" : "オランダ王国", "pt-BR" : "Países Baixos", "ru" : "Нидерланды", "zh-CN" : "荷兰" } } } }, { "2a02:fe40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:fe80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:fec0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } }, "registered_country" : { "geoname_id" : 2635167, "iso_code" : "GB", "names" : { "de" : "Vereinigtes Königreich", "en" : "United Kingdom", "es" : "Reino Unido", "fr" : "Royaume-Uni", "ja" : "イギリス", "pt-BR" : "Reino Unido", "ru" : "Великобритания", "zh-CN" : "英国" } } } }, { "2a02:ff00::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } }, "registered_country" : { "geoname_id" : 3175395, "is_in_european_union" : true, "iso_code" : "IT", "names" : { "de" : "Italien", "en" : "Italy", "es" : "Italia", "fr" : "Italie", "ja" : "イタリア共和国", "pt-BR" : "Itália", "ru" : "Италия", "zh-CN" : "意大利" } } } }, { "2a02:ff40::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 3042225, "iso_code" : "IM", "names" : { "de" : "Insel Man", "en" : "Isle of Man", "es" : "Isla de Man", "fr" : "Île de Man", "ja" : "マン島", "pt-BR" : "Ilha de Man", "ru" : "Мэн, о-в", "zh-CN" : "曼岛" } }, "registered_country" : { "geoname_id" : 3042225, "iso_code" : "IM", "names" : { "de" : "Insel Man", "en" : "Isle of Man", "es" : "Isla de Man", "fr" : "Île de Man", "ja" : "マン島", "pt-BR" : "Ilha de Man", "ru" : "Мэн, о-в", "zh-CN" : "曼岛" } } } }, { "2a02:ff80::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } }, "registered_country" : { "geoname_id" : 2921044, "is_in_european_union" : true, "iso_code" : "DE", "names" : { "de" : "Deutschland", "en" : "Germany", "es" : "Alemania", "fr" : "Allemagne", "ja" : "ドイツ連邦共和国", "pt-BR" : "Alemanha", "ru" : "Германия", "zh-CN" : "德国" } } } }, { "2a02:ffc0::/29" : { "continent" : { "code" : "EU", "geoname_id" : 6255148, "names" : { "de" : "Europa", "en" : "Europe", "es" : "Europa", "fr" : "Europe", "ja" : "ヨーロッパ", "pt-BR" : "Europa", "ru" : "Европа", "zh-CN" : "欧洲" } }, "country" : { "geoname_id" : 2411586, "iso_code" : "GI", "names" : { "de" : "Gibraltar", "en" : "Gibraltar", "es" : "Gibraltar", "fr" : "Gibraltar", "ja" : "ジブラルタル", "pt-BR" : "Gibraltar", "ru" : "Гибралтар" } }, "registered_country" : { "geoname_id" : 2411586, "iso_code" : "GI", "names" : { "de" : "Gibraltar", "en" : "Gibraltar", "es" : "Gibraltar", "fr" : "Gibraltar", "ja" : "ジブラルタル", "pt-BR" : "Gibraltar", "ru" : "Гибралтар" } } } } ] golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/source-data/README000066400000000000000000000011561507532544400265660ustar00rootroot00000000000000All of these but the City and Enterprise files are JSON dumps of the databases created by the GeoIP2 build integration tests (TestFor::MM::Integration::GeoIP2::Build). Additional data was added to match our legacy test databases. The City file is of unknown origin. The Enterprise file was a single example IP address, modified slightly to include all fields. It now has more than that. The Precision file was the normal Enterprise file with an additional marker (128.101.101.101) to differentiate the two. It now contains additional additions and changes as it is the database used in many MaxMind integration tests. golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/000077500000000000000000000000001507532544400253625ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/GeoIP2-Anonymous-IP-Test.mmdb000066400000000000000000000104361507532544400324650ustar00rootroot00000000000000@@@@@X @ @ @ @ @@@@@@@@@@@@@@@@@@@ @!@"@#@$@%@&@'@(@)@*@+@,@-@.@/@0@1@2@3@4@5@6@7@8@9@:@;@<@=@>@?@@@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@QIR@S@T@U@V@W@X@Y@Z@[@\@]@^@_@`@abc@d@ef@g@0hi@jpk@l@m@n@@oA@@q@r@s@tu@v@@w@xy@@z{@@|}@@~@@@@@@@@d@@0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@0@@@@0@@@@@@@@@@@0@@@@@@@0@@@@@@@@@@@@@@@@@@@@H@5@@ @@@@@@@@@@@@ @@@@@0@0@ @@ @ @@@@@@@@@@@0@@@@@@0@@ !@"@#@$(@%&@'@@0@)*@+@@,@-.@@/@01@2@@34@0@6@@7@89@:@;@<@=@>@?@@@A@@B@C@DE@F@G@@000@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@`Y@Z@[@\@]@^@_@`@a@b@c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@{@|@}@~@@@@@@@@@@@@@@@@@@0@@@@@@@@@@@@@@@@@@@00000000`0@@@@@@@@@@0@`@(@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ @ @@@@@@@@@@@@@@@@@@@ @!@"@#@$@%@&@'@@@)@*@+@,0-.0@/0@Lis_anonymousPis_anonymous_vpn     Pis_tor_exit_node    -   Sis_hosting_provider      N Ois_public_proxy Tis_residential_proxy  -    q MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeSGeoIP2-Anonymous-IPKdescriptionBen]2GeoIP2 Anonymous IP Test Database (fake GeoIP2 data, for example purposes only)Jip_versionIlanguagesBenJnode_count0Krecord_sizeGeoIP2-City-Test-Broken-Double-Format.mmdb000066400000000000000000000523131507532544400346740ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqyrstuvwxz{|}~ W N v W  + m      !"#$%&'()*q,-.r/\012U3G456789:;<=>?@FABCDEHIJKLMNOPQRSTVWXYZ[]^_`aebcdfghijklmnopqstuvwxyz{|}~ua+`     " !`#$V%7&+'()* ,0-./142356k8G9=:;< >D?A@BCEF HOILJK MN PSQRTU WvXgY`Z][\^_kadbcef hoiljk mn psqrtuwxy|z{ }~ {   ` KEw'Ik Fy]mK] " .'       K !!#6$+%(&')*K,3-0./ 1245!7>8;9:<=w?B@A]CDKFGfHWIPJMKL"WNOQTRSUV X_Y\Z[']^"`cab#6de#6gvhoiljkmn psqr#tuw~x{yz|}"W#6m$ '%W]#6 ]M K%&w k %#'WF F K *  '%# K!"(@$'%& ()+>,7-4.1/0K2356K8;9:(<=?F@CAB)DEGJHI#6KLkNOkP\QXRUSTVWYZ[]d^a_`+bc"Wehfgij'l{mtnqopwrs uxvwkyzk|}~ KK + #6'Wm%'#6QyIm ( Km]K       k2,  ! +!$"#%(&' )*,/-.-01%3B4;5867%9:%<?=>@ACJDGEF%WHIkKNLM'OPkRSrTcU\VYWXZ[%]`^_abkdkehfg]ij .lomn pq st{uxvw'Wyz#6|}~k Fk'.  F.#% F F/6/DcityJgeoname_id(EEnamesBenGBoxfordIcontinentDcodeBEU _r, BdeFEuropaBenFEuropeBes HBfr RBjaOヨーロッパEpt-BR HBruLЕвропаEzh-CNF欧洲   ) 3Gcountry (5Hiso_codeBGB BdeWVereinigtes KönigreichBenNUnited KingdomBesKReino UnidoBfrKRoyaume-UniBjaLイギリス v Bru\Великобритания F英国HlocationOaccuracy_radiusdHlatitudee51.75Ilongitudee-1.25Itime_zoneMEurope/LondonFpostal 4COX1Rregistered_country . Tis_in_european_union BFR BdeJFrankreichBenFFranceBesGFranciaBfr!BjaUフランス共和国 vGFrançaBruNФранция F法国Lsubdivisions _ CENG BenGEnglandBesJInglaterraBfrJAngleterre v"w 2a CWBK BenNWest BerkshireBru]Западный Беркшир L西伯克郡 ) 4BAS _r+ BdeEAsienBenDAsiaBes#BfrDAsieBjaIアジア vEÁsiaBruHАзия F亚洲  BBT BdeFBhutanBen#WBesFButánBfr#WBjaRブータン王国 vFButãoBruJБутан F不丹!J!T!fd27.5!ud90.5!LAsia/Thimphu!  /U!! BRO BdeIRumänienBenGRomaniaBesHRumaníaBfrHRoumanieBjaOルーマニア vHRomêniaBruNРумыния L罗马尼亚FtraitsRis_anonymous_proxy!  (W BdeFLondonBen$~BesGLondresBfr$BjaLロンドン v$BruLЛондон ) 3 !J!Td!fg51.5142!ug-0.0931!!! _e BUS BdeCUSABenMUnited StatesBesNEstados UnidosBfrKÉtats-UnisBjaUアメリカ合衆国 v%BruFСША F美国"J"Y $q ) 3 !J!T!f$!u$!!!$"J%a $q ) 3 !J!T !f$!u$!!!$"J%a  )j BdeJLinköpingBen%Bfr%BjaXリンシェーピング I林雪平 ) 3 (!! BSE BdeHSchwedenBenFSwedenBesFSueciaBfrFSuèdeBjaXスウェーデン王国 vGSuéciaBruLШвеция F瑞典!J!TL!fg58.4167!ug15.6167!PEurope/Stockholm! ,T!! BDE BdeKDeutschlandBenGGermanyBesHAlemaniaBfrIAllemagneBjaXドイツ連邦共和国 vHAlemanhaBruPГермания F德国"J ( AE BenUÖstergötland CountyBfrWComté d'Östergötland ) 4BNA _r- BdeKNordamerikaBenMNorth AmericaBesRAmérica del NorteBfrQAmérique du NordBjaO北アメリカ vQAmérica do NorteBru]Северная Америка I北美洲 Jconfidencec _e BUS $!J!T!ff37.751!ug-97.822!OAmerica/Chicago!   BdeKChángchūnBenIChangchunBfr(BjaI長春市BruNЧанчунь F长春 )"  BCN BdeEChinaBen(Bes(BfrEChineBjaF中国 v(BruJКитай (!J!Td!fe43.88!uh125.3228!KAsia/Harbin!("J  B22 BenKJilin Sheng F吉林 )" 8 BPH BdeKPhilippinenBenKPhilippinesBesIFilipinasBfr(BjaXフィリピン共和国 v(BruRФилиппины I菲律宾!J!Ty!fb13!uc122!KAsia/Manila! 4E34021!(Srepresented_country _e BUS $DtypeHmilitary   BdeHSingapurBenISingaporeBes(BfrISingapourBjaRシンガポール vISingapuraBruPСингапур I新加坡 )"  BSG (!J!T !fe1.336!uh103.7716!NAsia/Singapore! 4B59!(   a BdeIMelbourneBen(RBes(RBfr(RBjaOメルボルン v(RBruPМельбурн I墨尔本 ) 4BOC _r/ BdeHOzeanienBenGOceaniaBesHOceaníaBfrHOcéanieBjaOオセアニア v(BruNОкеания I大洋洲  BAU BdeJAustralienBenIAustraliaBes(>BfrIAustralieBjaUオーストラリア vJAustráliaBruRАвстралия L澳大利亚!J!T!fh-37.8159!uh144.9669!SAustralia/Melbourne! 4D3000!("J  CVIC BenHVictoria vHVitóriaBruPВиктория  X$ BenFMiltonBruNМильтон )' $!J!T!fg47.2513!ui-122.3149Jmetro_code3!SAmerica/Los_Angeles! 4E98354! "J X_ BWA BenJWashingtonBes(BfrSÉtat de WashingtonBjaRワシントン州BruRВашингтон L华盛顿州 )" e BJP BdeEJapanBen(:BesFJapónBfrEJaponBjaF日本 vFJapãoBruLЯпония (\!J!Td!fh35.68536!ui139.75309!JAsia/Tokyo!(( )" A BKR BdeNRepublik KoreaBenKSouth KoreaBesTCorea, República deBfrMCorée du SudBjaL大韓民国 vVCoréia, República daBruUЮжная Корея F韩国!J!Td!fb37!ue127.5!JAsia/Seoul!( )" t BTW BdeFTaiwanBen(BesGTaiwánBfrGTaïwanBjaF台湾 v(BruNТайвань (!J!Td!fb24!uc121!KAsia/Taipei!( )"  BCN Bde(BenZPeople's Republic of ChinaBesXRepública Popular ChinaBfr( Bja( v(Bru($ (!J!Td!fb35!uc105!( )" R BHK BdeHHongkongBenIHong KongBes(Bfr(BjaF香港 v(BruNГонконг (!J!Td!fe22.25!ui114.16667!NAsia/Hong_Kong!( ) 3 / BNO BdeHNorwegenBenFNorwayBesGNoruegaBfrHNorvègeBjaUノルウェー王国 v( SBruPНорвегия F挪威!J!Td!fb62!ub10!KEurope/Oslo!( + )" ~ BIL BdeFIsraelBen( Bes( BfrGIsraëlBjaRイスラエル国 v( BruNИзраиль I以色列!J!Td!fd31.5!ue34.75!NAsia/Jerusalem!( ) 3 !!J!Td!fb46!ua2!LEurope/Paris!! ) 3 ( BCH BdeGSchweizBenKSwitzerlandBesESuizaBfrFSuisseBjaOスイス連邦 vGSuíçaBruRШвейцария F瑞士!J!Td!fh47.00016!ug8.01427!MEurope/Zurich!( ) 3 &!J!Td!fb62!ub15!&!& )" m BBH BdeGBahrainBen( yBesHBahréinBfrHBahreïnBjaOバーレーン v( yBruNБахрейн F巴林!J!Td!fb26!ud50.5!LAsia/Bahrain!( g ) 3 Z BRU BdeHRusslandBenFRussiaBesERusiaBfrFRussieBjaIロシア vGRússiaBruLРоссия I俄罗斯!J!Td!fb60!uc100!( ) 3  /P!! BPL BdeEPolenBenFPolandBesGPoloniaBfrGPologneBjaXポーランド共和国 vHPolôniaBruLПольша F波兰!J!Td!fb52!ub20!MEurope/Warsaw!( ) 3 &!J!Td!fd51.5!ud10.5!MEurope/Berlin!& ) 3 0s!! BIT BdeGItalienBenEItalyBesFItaliaBfrFItalieBjaUイタリア共和国 vGItáliaBruLИталия I意大利!J!Td!fh42.83333!uh12.83333!KEurope/Rome!( d ) 3  -!! BFI BdeHFinnlandBenGFinlandBesIFinlandiaBfrHFinlandeBja[フィンランド共和国 vJFinlândiaBruRФинляндия F芬兰!J!Td!fb64!ub26!OEurope/Helsinki!( ) 3  @ BBY BdeMWeißrusslandBenGBelarusBesKBielorrusiaBfrLBiélorussieBjaXベラルーシ共和国 vMBielo-RússiaBruPБеларусь L白俄罗斯!J!Td!fb53!ub28!LEurope/Minsk!( ) 3 .!! BCZ BdeUTschechische RepublikBenNCzech RepublicBesPRepública ChecaBfrITchéquieBjaRチェコ共和国 v(Bru]Чешская Республика O捷克共和国!J!Td!fe49.75!ub15!MEurope/Prague!( )"  BIR BdeZIran (Islamische Republik)BenDIranBes\Irán (República Islámica)Bfr]Iran (République islamique de)Bja]イラン・イスラム共和国 v\República Islâmica do IrãBruHИран X伊朗伊斯兰共和国!J!Td!fb32!ub53!KAsia/Tehran!({ ) 3  g BUA BdeGUkraineBen(BesGUcraniaBfr(BjaXウクライナ共和国 vHUcrâniaBruNУкраина I乌克兰!J!Td!fb49!ub32!( ) 3 !J!Td!fh54.75844!uh-2.69531!!! ) 3  !! BHU BdeFUngarnBenGHungaryBesHHungríaBfrGHongrieBjaXハンガリー共和国 vGHungriaBruNВенгрия I匈牙利!J!Td!fb47!ub20!OEurope/Budapest!(L ) 3!J!Td!fh48.69096!ug9.14062!LEurope/Vaduz ) 3 &O!! BES BdeGSpanienBenESpainBesGEspañaBfrGEspagneBjaLスペイン vGEspanhaBruNИспания I西班牙!J!Td!fb40!ub-4!(. ) 3  .!! BBG BdeIBulgarienBenHBulgariaBes(BfrHBulgarieBjaXブルガリア共和国 vIBulgáriaBruPБолгария L保加利亚!J!Td!fb43!ub25!LEurope/Sofia!( ) 3 #!J!Td!fb46!ub25!PEurope/Bucharest!# ) 3 *¹!! BBE BdeGBelgienBenGBelgiumBesHBélgicaBfrHBelgiqueBjaRベルギー王国 v(BruNБельгия I比利时!J!Td!fh50.83333!ua4!OEurope/Brussels!( )" + BTR BdeGTürkeiBenFTurkeyBesHTurquíaBfrGTurquieBjaRトルコ共和国 vGTurquiaBruLТурция I土耳其!J!Td!fh39.05901!uh34.91155!OEurope/Istanbul!(T ) 3 *s!! BAT BdeKÖsterreichBenGAustriaBes(+BfrHAutricheBja[オーストリア共和国 vHÁustriaBruNАвстрия I奥地利!J!Td!fh47.33333!uh13.33333!MEurope/Vienna!( ) 3  BAL BdeHAlbanienBenGAlbaniaBes(BfrGAlbanieBjaXアルバニア共和国 vHAlbâniaBruNАлбания O阿尔巴尼亚!J!Td!fb41!ub20!MEurope/Tirane!( )" & BLB BdeGLibanonBenGLebanonBesGLíbanoBfrELibanBjaUレバノン共和国 v(BruJЛиван I黎巴嫩!J!Td!fh33.83333!uh35.83333!KAsia/Beirut!(u ) 3 )!! BNL BdeKNiederlandeBenKNetherlandsBesGHolandaBfrHPays-BasBjaRオランダ王国 vNPaíses BaixosBruTНидерланды F荷兰!J!Td!fd52.5!ud5.75!PEurope/Amsterdam!( )" [ BKW BdeFKuwaitBen(Bes(BfrGKoweïtBjaOクウェート v(BruLКувейт I科威特!J!Td!fd29.5!ue47.75!KAsia/Kuwait!( )"  BSA BdeMSaudi-ArabienBenLSaudi ArabiaBesNArabia SauditaBfrOArabie saouditeBja[サウジアラビア王国 vOArábia SauditaBru]Саудовская Аравия O沙特阿拉伯!J!Td!fb25!ub45!KAsia/Riyadh!(u ) 3 _L BRS BdeGSerbienBenFSerbiaBes({BfrFSerbieBjaLセルビア vGSérviaBruLСербия L塞尔维亚!J!Td!fh44.81892!uh20.45998!OEurope/Belgrade!(^ )"  BJO BdeIJordanienBen[Hashemite Kingdom of JordanBesHJordaniaBfrHJordanieBja]ヨルダン・ハシミテ王国 vIJordâniaBruPИордания F约旦!J!Td!fb31!ub36!JAsia/Amman!( ) 4BAF _r* BdeFAfrikaBenFAfricaBesGÁfricaBfrGAfriqueBjaLアフリカ v(BruLАфрика F非洲 ! BLY Bde]Libysch-Arabische DschamahirijaBenELibyaBesXLibia, República ÁrabeBfrELibyeBja] 社会主義人民リビア・アラブ国 vXLíbia Árabe JamahiriyaBruJЛивия [阿拉伯利比亚民众国!J!Td!fb28!ub17!NAfrica/Tripoli!(7 ) 3 -8!! BIE BdeFIrlandBenGIrelandBesURepública de IrlandaBfrGIrlandeBjaRアイルランド vGIrlandaBruPИрландия I爱尔兰!J!Td!fb53!ub-8!MEurope/Dublin!(< )" l BAZ BdeMAserbaidschanBenJAzerbaijanBesKAzerbaiyánBfrLAzerbaïdjanBja]アゼルバイジャン共和国 vKAzerbaijãoBruVАзербайджан L阿塞拜疆!J!Td!fd40.5!ud47.5!IAsia/Baku!( )" n BAE Bde\Vereinigte Arabische EmirateBenTUnited Arab EmiratesBesWEmiratos Árabes UnidosBfrTÉmirats Arabes UnisBjaXアラブ首長国連邦 vWEmirados Árabes UnidosBru]Объединенные Арабские Эмираты X阿拉伯联合酋长国!J!Td!fb24!ub54!JAsia/Dubai!( )"  BAM BdeHArmenienBenGArmeniaBes( BfrHArménieBjaXアルメニア共和国 vHArmêniaBruNАрмения L亚美尼亚!J!Td!fb40!ub45!LAsia/Yerevan!( ) 3 (8!! BDK BdeIDänemarkBenGDenmarkBesIDinamarcaBfrHDanemarkBjaUデンマーク王国 v( BruJДания F丹麦!J!Td!fb56!ub10!QEurope/Copenhagen!( ) 3 .k BIM BdeIInsel ManBenKIsle of ManBesKIsla de ManBfrKÎle de ManBjaIマン島 vKIlha de ManBruMМэн, о-в F曼岛!J!Td!fe54.25!ud-4.5!REurope/Isle_of_Man!(!T ) 3 $B BGI BdeIGibraltarBen("Bes("Bfr("BjaRジブラルタル v("BruRГибралтар!J!Td!fh36.13333!ue-5.35!PEurope/Gibraltar!(" MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeKGeoIP2-CityKdescriptionBen]?GeoIP2 City Test Broken Double Format Database (fake GeoIP2 data, for example purposes only)BzhO小型数据库Jip_versionIlanguagesBenBzhJnode_countKrecord_sizeGeoIP2-City-Test-Invalid-Node-Count.mmdb000066400000000000000000000531301507532544400343530ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqyrstuvwxz{|}~ e ^  e  +       !"#$%&'()*,-.r/\012U3G456789:;<=>?@FABCDEHIJKLMNOPQRSTVWXYZ[]^_`aebcdfghijklmnopqstuvwxyz{|}~Q6`     " !`#$V%7&+'()*0,0-./1423568G9=:;<0>D?A+@+BC++EF0HOILJK0MN0PSQRTU0WvXgY`Z][\^_adbcef0hoiljk0mn0psqrtuwxy|z{0}~0000`SE_S\- 6 "!     !  !!#6$+%(&')*,3-0./ 1245"7>8;9:<=?B@ACDFGfHWIPJMKL#QNO_QTRS_UVSX_Y\Z[]^#`cab$Cde$Cgvhoiljkmn psqr$tu_w~x{yz|}#Q___$C_ 6% ___&p$C M ''  '$(\S  *  _'# !")t$'%&S()_+>,7-4.1/023_568;9:*<=_?F@CAB*DEGJHI$CKLNOkP\QXRUSTVW_YZ[_]d^a_`,jbc#Qehfgijl{mtnqoprs uxvwyz|}~_ __!-/S$C( 6_'__$C_Q- 6 *  6_S      2. S! +!$"#_%(&' )*_,/-./L01'3B4;5867'9:'<?=>_@A_CJDGEF&pHIKNLMOPRSrTcU\VYWX_Z[']`^_abdkehfgij!lomn pq st{uxvw(yz$C|}~ 0S 0$'  01vDcityJgeoname_id(EEnamesBenGBoxfordIcontinentDcodeBEU _r, BdeFEuropaBenFEuropeBes HBfr RBjaOヨーロッパEpt-BR HBruLЕвропаEzh-CNF欧洲   ) 3Gcountry (5Hiso_codeBGB BdeWVereinigtes KönigreichBenNUnited KingdomBesKReino UnidoBfrKRoyaume-UniBjaLイギリス v Bru\Великобритания F英国HlocationOaccuracy_radiusdHlatitudeh@IIlongitudehItime_zoneMEurope/LondonFpostal 4COX1Rregistered_country . Tis_in_european_union BFR BdeJFrankreichBenFFranceBesGFranciaBfr!BjaUフランス共和国 vGFrançaBruNФранция F法国Lsubdivisions _ CENG BenGEnglandBesJInglaterraBfrJAngleterre v"} 2a CWBK BenNWest BerkshireBru]Западный Беркшир L西伯克郡 ) 4BAS _r+ BdeEAsienBenDAsiaBes# BfrDAsieBjaIアジア vEÁsiaBruHАзия F亚洲  BBT BdeFBhutanBen#]BesFButánBfr#]BjaRブータン王国 vFButãoBruJБутан F不丹!J!T!fh@;!xh@V!LAsia/Thimphu!  /U!! BRO BdeIRumänienBenGRomaniaBesHRumaníaBfrHRoumanieBjaOルーマニア vHRomêniaBruNРумыния L罗马尼亚FtraitsRis_anonymous_proxy!  (W BdeFLondonBen$BesGLondresBfr$BjaLロンドン v$BruLЛондон ) 3 !J!Td!fh@IN;6!xhfA!!! _e BUS BdeCUSABenMUnited StatesBesNEstados UnidosBfrKÉtats-UnisBjaUアメリカ合衆国 v%!BruFСША F美国"P"_ $ ) 3 !J!T!f$!x$!!!$"P%q $ ) 3 !J!T !f$!x$!!!$"P%q  )j BdeJLinköpingBen%Bfr%BjaXリンシェーピング I林雪平 ) 3 (!! BSE BdeHSchwedenBenFSwedenBesFSueciaBfrFSuèdeBjaXスウェーデン王国 vGSuéciaBruLШвеция F瑞典!J!TL!fh@M5Vl!!xh@/;6!PEurope/Stockholm! ,T!! BDE BdeKDeutschlandBenGGermanyBesHAlemaniaBfrIAllemagneBjaXドイツ連邦共和国 vHAlemanhaBruPГермания F德国"P ( AE BenUÖstergötland CountyBfrWComté d'Östergötland ) 4BNA _r- BdeKNordamerikaBenMNorth AmericaBesRAmérica del NorteBfrQAmérique du NordBjaO北アメリカ vQAmérica do NorteBru]Северная Америка I北美洲 Jconfidencec _e BUS %!J!T!fh@B ě!xhXtS!OAmerica/Chicago!   BdeKChángchūnBenIChangchunBfr(BjaI長春市BruNЧанчунь F长春 )"  BCN BdeEChinaBen( Bes( BfrEChineBjaF中国 v( BruJКитай (*!J!Td!fh@E =q!xh@_TTɆ!KAsia/Harbin!("P  B22 BenKJilin Sheng F吉林 )" 8 BPH BdeKPhilippinenBenKPhilippinesBesIFilipinasBfr(BjaXフィリピン共和国 v(BruRФилиппины I菲律宾!J!Ty!fh@*!xh@^!KAsia/Manila! 4E34021!(Srepresented_country _e BUS %DtypeHmilitary   BdeHSingapurBenISingaporeBes(BfrISingapourBjaRシンガポール vISingapuraBruPСингапур I新加坡 )"  BSG (!J!T !fh?`A7K!xh@Yae!NAsia/Singapore! 4B59!(   a BdeIMelbourneBen(xBes(xBfr(xBjaOメルボルン v(xBruPМельбурн I墨尔本 ) 4BOC _r/ BdeHOzeanienBenGOceaniaBesHOceaníaBfrHOcéanieBjaOオセアニア v(BruNОкеания I大洋洲  BAU BdeJAustralienBenIAustraliaBes(dBfrIAustralieBjaUオーストラリア vJAustráliaBruRАвстралия L澳大利亚!J!T!fhBoiDg8!xh@bD!SAustralia/Melbourne! 4D3000!(D"P  CVIC BenHVictoria vHVitóriaBruPВиктория  X$ BenFMiltonBruNМильтон )' $!J!T!fh@G*0!xh^'RT`Jmetro_code3!SAmerica/Los_Angeles! 4E98354! "P X_ BWA BenJWashingtonBes(BfrSÉtat de WashingtonBjaRワシントン州BruRВашингтон L华盛顿州 )" e BJP BdeEJapanBen(`BesFJapónBfrEJaponBjaF日本 vFJapãoBruLЯпония (!J!Td!fh@A׹`H!xh@axP3:!JAsia/Tokyo!(N )" A BKR BdeNRepublik KoreaBenKSouth KoreaBesTCorea, República deBfrMCorée du SudBjaL大韓民国 vVCoréia, República daBruUЮжная Корея F韩国!J!Td!fh@B!xh@_!JAsia/Seoul!( )" t BTW BdeFTaiwanBen(BesGTaiwánBfrGTaïwanBjaF台湾 v(BruNТайвань (!J!Td!fh@8!xh@^@!KAsia/Taipei!( )"  BCN Bde( BenZPeople's Republic of ChinaBesXRepública Popular ChinaBfr(!Bja(* v( Bru(9 (*!J!Td!fh@A!xh@Z@!(I )" R BHK BdeHHongkongBenIHong KongBes(Bfr(BjaF香港 v(BruNГонконг ( !J!Td!fh@6@!xh@\[!NAsia/Hong_Kong!( ) 3 / BNO BdeHNorwegenBenFNorwayBesGNoruegaBfrHNorvègeBjaUノルウェー王国 v( BruPНорвегия F挪威!J!Td!fh@O!xh@$!KEurope/Oslo!( q )" ~ BIL BdeFIsraelBen( 1Bes( 1BfrGIsraëlBjaRイスラエル国 v( 1BruNИзраиль I以色列!J!Td!fh@?!xh@A`!NAsia/Jerusalem!(  ) 3 !!J!Td!fh@G!xh@!LEurope/Paris!! ) 3 ( BCH BdeGSchweizBenKSwitzerlandBesESuizaBfrFSuisseBjaOスイス連邦 vGSuíçaBruRШвейцария F瑞士!J!Td!fh@G>-b9!xh@ Ne!MEurope/Zurich!( ) 3 &!J!Td!fh@O!xh@.!&!& )" m BBH BdeGBahrainBen( BesHBahréinBfrHBahreïnBjaOバーレーン v( BruNБахрейн F巴林!J!Td!fh@:!xh@I@!LAsia/Bahrain!( ) 3 Z BRU BdeHRusslandBenFRussiaBesERusiaBfrFRussieBjaIロシア vGRússiaBruLРоссия I俄罗斯!J!Td!fh@N!xh@Y!( } ) 3  /P!! BPL BdeEPolenBenFPolandBesGPoloniaBfrGPologneBjaXポーランド共和国 vHPolôniaBruLПольша F波兰!J!Td!fh@J!xh@4!MEurope/Warsaw!(  ) 3 &!J!Td!fh@I!xh@%!MEurope/Berlin!& ) 3 0s!! BIT BdeGItalienBenEItalyBesFItaliaBfrFItalieBjaUイタリア共和国 vGItáliaBruLИталия I意大利!J!Td!fh@EjcI!xh@):э&!KEurope/Rome!( ) 3  -!! BFI BdeHFinnlandBenGFinlandBesIFinlandiaBfrHFinlandeBja[フィンランド共和国 vJFinlândiaBruRФинляндия F芬兰!J!Td!fh@P!xh@:!OEurope/Helsinki!( ) 3  @ BBY BdeMWeißrusslandBenGBelarusBesKBielorrusiaBfrLBiélorussieBjaXベラルーシ共和国 vMBielo-RússiaBruPБеларусь L白俄罗斯!J!Td!fh@J!xh@<!LEurope/Minsk!(z ) 3 .!! BCZ BdeUTschechische RepublikBenNCzech RepublicBesPRepública ChecaBfrITchéquieBjaRチェコ共和国 v(Bru]Чешская Республика O捷克共和国!J!Td!fh@H!xh@.!MEurope/Prague!(K )"  BIR BdeZIran (Islamische Republik)BenDIranBes\Irán (República Islámica)Bfr]Iran (République islamique de)Bja]イラン・イスラム共和国 v\República Islâmica do IrãBruHИран X伊朗伊斯兰共和国!J!Td!fh@@!xh@J!KAsia/Tehran!(8 ) 3  g BUA BdeGUkraineBen(fBesGUcraniaBfr(fBjaXウクライナ共和国 vHUcrâniaBruNУкраина I乌克兰!J!Td!fh@H!xh@@!(T ) 3 !J!Td!fh@Ka7!xhtr!!! ) 3  !! BHU BdeFUngarnBenGHungaryBesHHungríaBfrGHongrieBjaXハンガリー共和国 vGHungriaBruNВенгрия I匈牙利!J!Td!fh@G!xh@4!OEurope/Budapest!(! ) 3!J!Td!fh@HXq`l !xh@"GX:S!LEurope/Vaduz ) 3 &O!! BES BdeGSpanienBenESpainBesGEspañaBfrGEspagneBjaLスペイン vGEspanhaBruNИспания I西班牙!J!Td!fh@D!xh!( ) 3  .!! BBG BdeIBulgarienBenHBulgariaBes(BfrHBulgarieBjaXブルガリア共和国 vIBulgáriaBruPБолгария L保加利亚!J!Td!fh@E!xh@9!LEurope/Sofia!( ) 3 #!J!Td!fh@G!xh@9!PEurope/Bucharest!# ) 3 *¹!! BBE BdeGBelgienBenGBelgiumBesHBélgicaBfrHBelgiqueBjaRベルギー王国 v(BruNБельгия I比利时!J!Td!fh@IjcI!xh@!OEurope/Brussels!( )" + BTR BdeGTürkeiBenFTurkeyBesHTurquíaBfrGTurquieBjaRトルコ共和国 vGTurquiaBruLТурция I土耳其!J!Td!fh@C!xh@AtU!OEurope/Istanbul!(a ) 3 *s!! BAT BdeKÖsterreichBenGAustriaBes(8BfrHAutricheBja[オーストリア共和国 vHÁustriaBruNАвстрия I奥地利!J!Td!fh@GcI!xh@*:э&!MEurope/Vienna!( ) 3  BAL BdeHAlbanienBenGAlbaniaBes(BfrGAlbanieBjaXアルバニア共和国 vHAlbâniaBruNАлбания O阿尔巴尼亚!J!Td!fh@D!xh@4!MEurope/Tirane!( )" & BLB BdeGLibanonBenGLebanonBesGLíbanoBfrELibanBjaUレバノン共和国 v(BruJЛиван I黎巴嫩!J!Td!fh@@ꪎcI!xh@AꪎcI!KAsia/Beirut!( ) 3 )!! BNL BdeKNiederlandeBenKNetherlandsBesGHolandaBfrHPays-BasBjaRオランダ王国 vNPaíses BaixosBruTНидерланды F荷兰!J!Td!fh@J@!xh@!PEurope/Amsterdam!(6 )" [ BKW BdeFKuwaitBen(Bes(BfrGKoweïtBjaOクウェート v(BruLКувейт I科威特!J!Td!fh@=!xh@G!KAsia/Kuwait!( )"  BSA BdeMSaudi-ArabienBenLSaudi ArabiaBesNArabia SauditaBfrOArabie saouditeBja[サウジアラビア王国 vOArábia SauditaBru]Саудовская Аравия O沙特阿拉伯!J!Td!fh@9!xh@F!KAsia/Riyadh!( ) 3 _L BRS BdeGSerbienBenFSerbiaBes(BfrFSerbieBjaLセルビア vGSérviaBruLСербия L塞尔维亚!J!Td!fh@Fh^)!xh@4u?h!OEurope/Belgrade!( )"  BJO BdeIJordanienBen[Hashemite Kingdom of JordanBesHJordaniaBfrHJordanieBja]ヨルダン・ハシミテ王国 vIJordâniaBruPИордания F约旦!J!Td!fh@?!xh@B!JAsia/Amman!(: ) 4BAF _r* BdeFAfrikaBenFAfricaBesGÁfricaBfrGAfriqueBjaLアフリカ v(4BruLАфрика F非洲 ! BLY Bde]Libysch-Arabische DschamahirijaBenELibyaBesXLibia, República ÁrabeBfrELibyeBja] 社会主義人民リビア・アラブ国 vXLíbia Árabe JamahiriyaBruJЛивия [阿拉伯利比亚民众国!J!Td!fh@<!xh@1!NAfrica/Tripoli!(w ) 3 -8!! BIE BdeFIrlandBenGIrelandBesURepública de IrlandaBfrGIrlandeBjaRアイルランド vGIrlandaBruPИрландия I爱尔兰!J!Td!fh@J!xh !MEurope/Dublin!( )" l BAZ BdeMAserbaidschanBenJAzerbaijanBesKAzerbaiyánBfrLAzerbaïdjanBja]アゼルバイジャン共和国 vKAzerbaijãoBruVАзербайджан L阿塞拜疆!J!Td!fh@D@!xh@G!IAsia/Baku!(M )" n BAE Bde\Vereinigte Arabische EmirateBenTUnited Arab EmiratesBesWEmiratos Árabes UnidosBfrTÉmirats Arabes UnisBjaXアラブ首長国連邦 vWEmirados Árabes UnidosBru]Объединенные Арабские Эмираты X阿拉伯联合酋长国!J!Td!fh@8!xh@K!JAsia/Dubai!( , )"  BAM BdeHArmenienBenGArmeniaBes(!BfrHArménieBjaXアルメニア共和国 vHArmêniaBruNАрмения L亚美尼亚!J!Td!fh@D!xh@F!LAsia/Yerevan!(!j ) 3 (8!! BDK BdeIDänemarkBenGDenmarkBesIDinamarcaBfrHDanemarkBjaUデンマーク王国 v("PBruJДания F丹麦!J!Td!fh@L!xh@$!QEurope/Copenhagen!("" ) 3 .k BIM BdeIInsel ManBenKIsle of ManBesKIsla de ManBfrKÎle de ManBjaIマン島 vKIlha de ManBruMМэн, о-в F曼岛!J!Td!fh@K !xh!REurope/Isle_of_Man!(" ) 3 $B BGI BdeIGibraltarBen(#Bes(#Bfr(#BjaRジブラルタル v(#BruRГибралтар!J!Td!fh@Bɰ!xhffffff!PEurope/Gibraltar!(#MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeKGeoIP2-CityKdescriptionBen]=GeoIP2 City Test Invalid Node Count Database (fake GeoIP2 data, for example purposes only)BzhO小型数据库Jip_versionIlanguagesBenBzhJnode_countKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/GeoIP2-City-Test.mmdb000066400000000000000000000531041507532544400310760ustar00rootroot00000000000000      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqyrstuvwxz{|}~ e ^  e  +       !"#$%&'()*,-.r/\012U3G456789:;<=>?@FABCDEHIJKLMNOPQRSTVWXYZ[]^_`aebcdfghijklmnopqstuvwxyz{|}~Q6`     " !`#$V%7&+'()*0,0-./1423568G9=:;<0>D?A+@+BC++EF0HOILJK0MN0PSQRTU0WvXgY`Z][\^_adbcef0hoiljk0mn0psqrtuwxy|z{0}~0000`SE_S\- 6 "!     !  !!#6$+%(&')*,3-0./ 1245"7>8;9:<=?B@ACDFGfHWIPJMKL#QNO_QTRS_UVSX_Y\Z[]^#`cab$Cde$Cgvhoiljkmn psqr$tu_w~x{yz|}#Q___$C_ 6% ___&p$C M ''  '$(\S  *  _'# !")t$'%&S()_+>,7-4.1/023_568;9:*<=_?F@CAB*DEGJHI$CKLNOkP\QXRUSTVW_YZ[_]d^a_`,jbc#Qehfgijl{mtnqoprs uxvwyz|}~_ __!-/S$C( 6_'__$C_Q- 6 *  6_S      2. S! +!$"#_%(&' )*_,/-./L01'3B4;5867'9:'<?=>_@A_CJDGEF&pHIKNLMOPRSrTcU\VYWX_Z[']`^_abdkehfgij!lomn pq st{uxvw(yz$C|}~ 0S 0$'  01vDcityJgeoname_id(EEnamesBenGBoxfordIcontinentDcodeBEU _r, BdeFEuropaBenFEuropeBes HBfr RBjaOヨーロッパEpt-BR HBruLЕвропаEzh-CNF欧洲   ) 3Gcountry (5Hiso_codeBGB BdeWVereinigtes KönigreichBenNUnited KingdomBesKReino UnidoBfrKRoyaume-UniBjaLイギリス v Bru\Великобритания F英国HlocationOaccuracy_radiusdHlatitudeh@IIlongitudehItime_zoneMEurope/LondonFpostal 4COX1Rregistered_country . Tis_in_european_union BFR BdeJFrankreichBenFFranceBesGFranciaBfr!BjaUフランス共和国 vGFrançaBruNФранция F法国Lsubdivisions _ CENG BenGEnglandBesJInglaterraBfrJAngleterre v"} 2a CWBK BenNWest BerkshireBru]Западный Беркшир L西伯克郡 ) 4BAS _r+ BdeEAsienBenDAsiaBes# BfrDAsieBjaIアジア vEÁsiaBruHАзия F亚洲  BBT BdeFBhutanBen#]BesFButánBfr#]BjaRブータン王国 vFButãoBruJБутан F不丹!J!T!fh@;!xh@V!LAsia/Thimphu!  /U!! BRO BdeIRumänienBenGRomaniaBesHRumaníaBfrHRoumanieBjaOルーマニア vHRomêniaBruNРумыния L罗马尼亚FtraitsRis_anonymous_proxy!  (W BdeFLondonBen$BesGLondresBfr$BjaLロンドン v$BruLЛондон ) 3 !J!Td!fh@IN;6!xhfA!!! _e BUS BdeCUSABenMUnited StatesBesNEstados UnidosBfrKÉtats-UnisBjaUアメリカ合衆国 v%!BruFСША F美国"P"_ $ ) 3 !J!T!f$!x$!!!$"P%q $ ) 3 !J!T !f$!x$!!!$"P%q  )j BdeJLinköpingBen%Bfr%BjaXリンシェーピング I林雪平 ) 3 (!! BSE BdeHSchwedenBenFSwedenBesFSueciaBfrFSuèdeBjaXスウェーデン王国 vGSuéciaBruLШвеция F瑞典!J!TL!fh@M5Vl!!xh@/;6!PEurope/Stockholm! ,T!! BDE BdeKDeutschlandBenGGermanyBesHAlemaniaBfrIAllemagneBjaXドイツ連邦共和国 vHAlemanhaBruPГермания F德国"P ( AE BenUÖstergötland CountyBfrWComté d'Östergötland ) 4BNA _r- BdeKNordamerikaBenMNorth AmericaBesRAmérica del NorteBfrQAmérique du NordBjaO北アメリカ vQAmérica do NorteBru]Северная Америка I北美洲 Jconfidencec _e BUS %!J!T!fh@B ě!xhXtS!OAmerica/Chicago!   BdeKChángchūnBenIChangchunBfr(BjaI長春市BruNЧанчунь F长春 )"  BCN BdeEChinaBen( Bes( BfrEChineBjaF中国 v( BruJКитай (*!J!Td!fh@E =q!xh@_TTɆ!KAsia/Harbin!("P  B22 BenKJilin Sheng F吉林 )" 8 BPH BdeKPhilippinenBenKPhilippinesBesIFilipinasBfr(BjaXフィリピン共和国 v(BruRФилиппины I菲律宾!J!Ty!fh@*!xh@^!KAsia/Manila! 4E34021!(Srepresented_country _e BUS %DtypeHmilitary   BdeHSingapurBenISingaporeBes(BfrISingapourBjaRシンガポール vISingapuraBruPСингапур I新加坡 )"  BSG (!J!T !fh?`A7K!xh@Yae!NAsia/Singapore! 4B59!(   a BdeIMelbourneBen(xBes(xBfr(xBjaOメルボルン v(xBruPМельбурн I墨尔本 ) 4BOC _r/ BdeHOzeanienBenGOceaniaBesHOceaníaBfrHOcéanieBjaOオセアニア v(BruNОкеания I大洋洲  BAU BdeJAustralienBenIAustraliaBes(dBfrIAustralieBjaUオーストラリア vJAustráliaBruRАвстралия L澳大利亚!J!T!fhBoiDg8!xh@bD!SAustralia/Melbourne! 4D3000!(D"P  CVIC BenHVictoria vHVitóriaBruPВиктория  X$ BenFMiltonBruNМильтон )' $!J!T!fh@G*0!xh^'RT`Jmetro_code3!SAmerica/Los_Angeles! 4E98354! "P X_ BWA BenJWashingtonBes(BfrSÉtat de WashingtonBjaRワシントン州BruRВашингтон L华盛顿州 )" e BJP BdeEJapanBen(`BesFJapónBfrEJaponBjaF日本 vFJapãoBruLЯпония (!J!Td!fh@A׹`H!xh@axP3:!JAsia/Tokyo!(N )" A BKR BdeNRepublik KoreaBenKSouth KoreaBesTCorea, República deBfrMCorée du SudBjaL大韓民国 vVCoréia, República daBruUЮжная Корея F韩国!J!Td!fh@B!xh@_!JAsia/Seoul!( )" t BTW BdeFTaiwanBen(BesGTaiwánBfrGTaïwanBjaF台湾 v(BruNТайвань (!J!Td!fh@8!xh@^@!KAsia/Taipei!( )"  BCN Bde( BenZPeople's Republic of ChinaBesXRepública Popular ChinaBfr(!Bja(* v( Bru(9 (*!J!Td!fh@A!xh@Z@!(I )" R BHK BdeHHongkongBenIHong KongBes(Bfr(BjaF香港 v(BruNГонконг ( !J!Td!fh@6@!xh@\[!NAsia/Hong_Kong!( ) 3 / BNO BdeHNorwegenBenFNorwayBesGNoruegaBfrHNorvègeBjaUノルウェー王国 v( BruPНорвегия F挪威!J!Td!fh@O!xh@$!KEurope/Oslo!( q )" ~ BIL BdeFIsraelBen( 1Bes( 1BfrGIsraëlBjaRイスラエル国 v( 1BruNИзраиль I以色列!J!Td!fh@?!xh@A`!NAsia/Jerusalem!(  ) 3 !!J!Td!fh@G!xh@!LEurope/Paris!! ) 3 ( BCH BdeGSchweizBenKSwitzerlandBesESuizaBfrFSuisseBjaOスイス連邦 vGSuíçaBruRШвейцария F瑞士!J!Td!fh@G>-b9!xh@ Ne!MEurope/Zurich!( ) 3 &!J!Td!fh@O!xh@.!&!& )" m BBH BdeGBahrainBen( BesHBahréinBfrHBahreïnBjaOバーレーン v( BruNБахрейн F巴林!J!Td!fh@:!xh@I@!LAsia/Bahrain!( ) 3 Z BRU BdeHRusslandBenFRussiaBesERusiaBfrFRussieBjaIロシア vGRússiaBruLРоссия I俄罗斯!J!Td!fh@N!xh@Y!( } ) 3  /P!! BPL BdeEPolenBenFPolandBesGPoloniaBfrGPologneBjaXポーランド共和国 vHPolôniaBruLПольша F波兰!J!Td!fh@J!xh@4!MEurope/Warsaw!(  ) 3 &!J!Td!fh@I!xh@%!MEurope/Berlin!& ) 3 0s!! BIT BdeGItalienBenEItalyBesFItaliaBfrFItalieBjaUイタリア共和国 vGItáliaBruLИталия I意大利!J!Td!fh@EjcI!xh@):э&!KEurope/Rome!( ) 3  -!! BFI BdeHFinnlandBenGFinlandBesIFinlandiaBfrHFinlandeBja[フィンランド共和国 vJFinlândiaBruRФинляндия F芬兰!J!Td!fh@P!xh@:!OEurope/Helsinki!( ) 3  @ BBY BdeMWeißrusslandBenGBelarusBesKBielorrusiaBfrLBiélorussieBjaXベラルーシ共和国 vMBielo-RússiaBruPБеларусь L白俄罗斯!J!Td!fh@J!xh@<!LEurope/Minsk!(z ) 3 .!! BCZ BdeUTschechische RepublikBenNCzech RepublicBesPRepública ChecaBfrITchéquieBjaRチェコ共和国 v(Bru]Чешская Республика O捷克共和国!J!Td!fh@H!xh@.!MEurope/Prague!(K )"  BIR BdeZIran (Islamische Republik)BenDIranBes\Irán (República Islámica)Bfr]Iran (République islamique de)Bja]イラン・イスラム共和国 v\República Islâmica do IrãBruHИран X伊朗伊斯兰共和国!J!Td!fh@@!xh@J!KAsia/Tehran!(8 ) 3  g BUA BdeGUkraineBen(fBesGUcraniaBfr(fBjaXウクライナ共和国 vHUcrâniaBruNУкраина I乌克兰!J!Td!fh@H!xh@@!(T ) 3 !J!Td!fh@Ka7!xhtr!!! ) 3  !! BHU BdeFUngarnBenGHungaryBesHHungríaBfrGHongrieBjaXハンガリー共和国 vGHungriaBruNВенгрия I匈牙利!J!Td!fh@G!xh@4!OEurope/Budapest!(! ) 3!J!Td!fh@HXq`l !xh@"GX:S!LEurope/Vaduz ) 3 &O!! BES BdeGSpanienBenESpainBesGEspañaBfrGEspagneBjaLスペイン vGEspanhaBruNИспания I西班牙!J!Td!fh@D!xh!( ) 3  .!! BBG BdeIBulgarienBenHBulgariaBes(BfrHBulgarieBjaXブルガリア共和国 vIBulgáriaBruPБолгария L保加利亚!J!Td!fh@E!xh@9!LEurope/Sofia!( ) 3 #!J!Td!fh@G!xh@9!PEurope/Bucharest!# ) 3 *¹!! BBE BdeGBelgienBenGBelgiumBesHBélgicaBfrHBelgiqueBjaRベルギー王国 v(BruNБельгия I比利时!J!Td!fh@IjcI!xh@!OEurope/Brussels!( )" + BTR BdeGTürkeiBenFTurkeyBesHTurquíaBfrGTurquieBjaRトルコ共和国 vGTurquiaBruLТурция I土耳其!J!Td!fh@C!xh@AtU!OEurope/Istanbul!(a ) 3 *s!! BAT BdeKÖsterreichBenGAustriaBes(8BfrHAutricheBja[オーストリア共和国 vHÁustriaBruNАвстрия I奥地利!J!Td!fh@GcI!xh@*:э&!MEurope/Vienna!( ) 3  BAL BdeHAlbanienBenGAlbaniaBes(BfrGAlbanieBjaXアルバニア共和国 vHAlbâniaBruNАлбания O阿尔巴尼亚!J!Td!fh@D!xh@4!MEurope/Tirane!( )" & BLB BdeGLibanonBenGLebanonBesGLíbanoBfrELibanBjaUレバノン共和国 v(BruJЛиван I黎巴嫩!J!Td!fh@@ꪎcI!xh@AꪎcI!KAsia/Beirut!( ) 3 )!! BNL BdeKNiederlandeBenKNetherlandsBesGHolandaBfrHPays-BasBjaRオランダ王国 vNPaíses BaixosBruTНидерланды F荷兰!J!Td!fh@J@!xh@!PEurope/Amsterdam!(6 )" [ BKW BdeFKuwaitBen(Bes(BfrGKoweïtBjaOクウェート v(BruLКувейт I科威特!J!Td!fh@=!xh@G!KAsia/Kuwait!( )"  BSA BdeMSaudi-ArabienBenLSaudi ArabiaBesNArabia SauditaBfrOArabie saouditeBja[サウジアラビア王国 vOArábia SauditaBru]Саудовская Аравия O沙特阿拉伯!J!Td!fh@9!xh@F!KAsia/Riyadh!( ) 3 _L BRS BdeGSerbienBenFSerbiaBes(BfrFSerbieBjaLセルビア vGSérviaBruLСербия L塞尔维亚!J!Td!fh@Fh^)!xh@4u?h!OEurope/Belgrade!( )"  BJO BdeIJordanienBen[Hashemite Kingdom of JordanBesHJordaniaBfrHJordanieBja]ヨルダン・ハシミテ王国 vIJordâniaBruPИордания F约旦!J!Td!fh@?!xh@B!JAsia/Amman!(: ) 4BAF _r* BdeFAfrikaBenFAfricaBesGÁfricaBfrGAfriqueBjaLアフリカ v(4BruLАфрика F非洲 ! BLY Bde]Libysch-Arabische DschamahirijaBenELibyaBesXLibia, República ÁrabeBfrELibyeBja] 社会主義人民リビア・アラブ国 vXLíbia Árabe JamahiriyaBruJЛивия [阿拉伯利比亚民众国!J!Td!fh@<!xh@1!NAfrica/Tripoli!(w ) 3 -8!! BIE BdeFIrlandBenGIrelandBesURepública de IrlandaBfrGIrlandeBjaRアイルランド vGIrlandaBruPИрландия I爱尔兰!J!Td!fh@J!xh !MEurope/Dublin!( )" l BAZ BdeMAserbaidschanBenJAzerbaijanBesKAzerbaiyánBfrLAzerbaïdjanBja]アゼルバイジャン共和国 vKAzerbaijãoBruVАзербайджан L阿塞拜疆!J!Td!fh@D@!xh@G!IAsia/Baku!(M )" n BAE Bde\Vereinigte Arabische EmirateBenTUnited Arab EmiratesBesWEmiratos Árabes UnidosBfrTÉmirats Arabes UnisBjaXアラブ首長国連邦 vWEmirados Árabes UnidosBru]Объединенные Арабские Эмираты X阿拉伯联合酋长国!J!Td!fh@8!xh@K!JAsia/Dubai!( , )"  BAM BdeHArmenienBenGArmeniaBes(!BfrHArménieBjaXアルメニア共和国 vHArmêniaBruNАрмения L亚美尼亚!J!Td!fh@D!xh@F!LAsia/Yerevan!(!j ) 3 (8!! BDK BdeIDänemarkBenGDenmarkBesIDinamarcaBfrHDanemarkBjaUデンマーク王国 v("PBruJДания F丹麦!J!Td!fh@L!xh@$!QEurope/Copenhagen!("" ) 3 .k BIM BdeIInsel ManBenKIsle of ManBesKIsla de ManBfrKÎle de ManBjaIマン島 vKIlha de ManBruMМэн, о-в F曼岛!J!Td!fh@K !xh!REurope/Isle_of_Man!(" ) 3 $B BGI BdeIGibraltarBen(#Bes(#Bfr(#BjaRジブラルタル v(#BruRГибралтар!J!Td!fh@Bɰ!xhffffff!PEurope/Gibraltar!(#MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeKGeoIP2-CityKdescriptionBen]*GeoIP2 City Test Database (fake GeoIP2 data, for example purposes only)BzhO小型数据库Jip_versionIlanguagesBenBzhJnode_countKrecord_sizeGeoIP2-Connection-Type-Test.mmdb000066400000000000000000000104751507532544400331310ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data;D DDDD D D D D DDDDDDDDDDDDDDDDDDD D!D"D#D$D%D&D'D(D)D*D+D,D-D.D/D0D1D2D3D4D5D6D7D8D9D:D;D<D=D>D?D@DADBDCDDDEDFDGDHDIDJDKDLDMDNDODPDQRDSDTDUDVDWDXDYDZD[D\D]D^D_D`DabcDdDefDgxDhiDjDkDlDmDnDoDpDqTrTsTtTuTvTwTToyDzDD{D|D}D~DDDDDDDDDDDDDDDDTDDDDDDDDDDDDDDDDDDDDDDDoDDDDDDDDDDDDDDDDoDDDDDDDDDTDDTDDDDDTDDDTDDDDDDDDDDDoDDDDD0DDDDDDDDDDDDDDDDDDDDDDDDoDDDDDDDDDDDDD DD D DDDD  DDDDDDDDDDDDDDDDTDDDD D!"D#DD$D%D&'D(DD)*D+D,DD-.DD/TD123w4a5D6D7Z8L9D:D;D<D=D>D?D@DADBDCDDDEKFDGDHDIDJDDDDDMDDNDOPDQDRDSDDTDUVDWDXDDYDD[DD\]DD^_D`DDDDbcDdDeDfjDghDiDDDDklDmDDnDopDDqDrsDtDDuvDDDxyDzD{D|D}D~DDDDDDDDDDD{DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDoDDDDDDDDDDDDDDDDDDDDDDDDD{DDDDDDDDDDDDDDDDD`DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD DDD D D DDDDDDDDD2DDDDD'DDD D!D"D#D$D%D&D`DD()DD*D+,DD-D.D/0D1DDD`34D5D6D7D8D9D:DTDD<D=D>D?D@DABDDCDDOconnection_typeICable/DSL HCellular ICorporateMaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeVGeoIP2-Connection-TypeKdescriptionBen]5GeoIP2 Connection Type Test Database (fake GeoIP2 data, for example purposes only)Jip_versionIlanguagesBenJnode_countDKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/GeoIP2-Country-Test.mmdb000066400000000000000000000461611507532544400316360ustar00rootroot00000000000000X      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a!bcde~fghijklmnopqrstuvwxyz{|}a    ^ ^ ^ ^ k k      z "`#<$%&'()*+,-./0123456789:; =>?I@ABCDEFGHJOKLMNPQRSTUVWXYZ[\]^_ abcdefgh|ijklmnopqrstu{vwxyz}~ M       `!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWYZQ[\]^_`abcdPefghijEklumnopqrst`vw xy~z{|}~ k~ z z z z~~~~ )   ~"~ !~#&$%'(*6+2,/-.~01~3457>8;9:<=~?B@A~CD~FGHIJKLMNO`RSTUVWXYZ[\]^_w`pabcdeifgh^jmklnoVqrstu|vywxcz{}~k^jw<Vo|jj oVjVojjcV8 &kk ^   3)"j !o#&$%<'(k*1+.,-j/0&2534k67k9X:I;B<?=>k@ACFDEkGHJQKNLMOPoRUSTVWkYhZa[^\]k_`becdkfg]ipjmklnoqtrsouvx|yz{|}~Vvcoo<jjw^wVjkV^kVkV)kj= j  k  k &. '!$"#c%&o(+)*,-/60312k45o7:89k;<V>]?N@GADBCVEFkHKIJ LM OVPSQR^TUWZXYj[\^m_f`cabdekgjhiklnuorpqkstkvywxz{k}~<o)ojVjVk^jo!mo^kok"kk]D%    k j|" !o#$o&5'.(+)*,-/201j346=7:89j;<o>A?@wBCEdFUGNHKIJLM# ORPQ^SToV]WZXYj[\w^a_`# bc<etfmgjhiklonqopwrsou|vywxwz{#}~jIcontinentDcodeBEUJgeoname_id_r,EnamesBdeFEuropaBenFEuropeBes -Bfr 7BjaOヨーロッパEpt-BR -BruLЕвропаEzh-CNF欧洲Gcountry (5Hiso_codeBGB #BdeWVereinigtes KönigreichBenNUnited KingdomBesKReino UnidoBfrKRoyaume-UniBjaLイギリス [ Bru\Великобритания sF英国Rregistered_country . Tis_in_european_union BFR #BdeJFrankreichBenFFranceBesGFranciaBfr!pBjaUフランス共和国 [GFrançaBruNФранция sF法国  BNA _r- #BdeKNordamerikaBenMNorth AmericaBesRAmérica del NorteBfrQAmérique du NordBjaO北アメリカ [QAmérica do NorteBru]Северная Америка sI北美洲 _e BUS #BdeCUSABenMUnited StatesBesNEstados UnidosBfrKÉtats-UnisBjaUアメリカ合衆国 ["BruFСША sF美国!&"{  BAS _r+ #BdeEAsienBenDAsiaBes#BfrDAsieBjaIアジア [EÁsiaBruHАзия sF亚洲  BBT #BdeFBhutanBen#eBesFButánBfr#eBjaRブータン王国 [FButãoBruJБутан sF不丹!&  /U!@!U BRO #BdeIRumänienBenGRomaniaBesHRumaníaBfrHRoumanieBjaOルーマニア [HRomêniaBruNРумыния sL罗马尼亚FtraitsRis_anonymous_proxy!U  BNA _r- #Bde!Ben!BesMNorteaméricaBfr"Bja"% ["7Bru"L s"o "{!&"{$:$B!UUis_satellite_provider!U  !&"{  (!@!U BSE #BdeHSchwedenBenFSwedenBesFSueciaBfrFSuèdeBjaXスウェーデン王国 [GSuéciaBruLШвеция sF瑞典!& ,T!@!U BDE #BdeKDeutschlandBenGGermanyBesHAlemaniaBfrIAllemagneBjaXドイツ連邦共和国 [HAlemanhaBruPГермания sF德国 "  BCN #BdeEChinaBenZPeople's Republic of ChinaBesXRepública Popular ChinaBfrEChineBjaF中国 [%BruJКитай s&C!&% ! "{!& "  BCN #Bde%Ben%Bes%Bfr&:Bja&C [%Bru&Q s&C!&&x " 8 BPH #BdeKPhilippinenBenKPhilippinesBesIFilipinasBfr&BjaXフィリピン共和国 [&BruRФилиппины sI菲律宾!&&Srepresented_country _e BUS #"DtypeHmilitary$:$A$:$!U  $B BGI #BdeIGibraltarBen'Bes'Bfr'BjaRジブラルタル ['BruRГибралтар!&' " e BJP #BdeEJapanBen'BesFJapónBfrEJaponBjaF日本 [FJapãoBruLЯпония s(!&' " A BKR #BdeNRepublik KoreaBenKSouth KoreaBesTCorea, República deBfrMCorée du SudBjaL大韓民国 [VCoréia, República daBruUЮжная Корея sF韩国!&(L " t BTW #BdeFTaiwanBen(BesGTaiwánBfrGTaïwanBjaF台湾 [(BruNТайвань s(4!&( " R BHK #BdeHHongkongBenIHong KongBes(Bfr(BjaF香港 [(BruNГонконг s(!&(c  / BNO #BdeHNorwegenBenFNorwayBesGNoruegaBfrHNorvègeBjaUノルウェー王国 [(BruPНорвегия sF挪威!&( " ~ BIL #BdeFIsraelBen(^Bes(^BfrGIsraëlBjaRイスラエル国 [(^BruNИзраиль sI以色列!&(L  !9!&!9  ( BCH #BdeGSchweizBenKSwitzerlandBesESuizaBfrFSuisseBjaOスイス連邦 [GSuíçaBruRШвейцария sF瑞士!&(  $!&$ " m BBH #BdeGBahrainBen(qBesHBahréinBfrHBahreïnBjaOバーレーン [(qBruNБахрейн sF巴林!&(_  Z BRU #BdeHRusslandBenFRussiaBesERusiaBfrFRussieBjaIロシア [GRússiaBruLРоссия sI俄罗斯!&(   /P!@!U BPL #BdeEPolenBenFPolandBesGPoloniaBfrGPologneBjaXポーランド共和国 [HPolôniaBruLПольша sF波兰!&(M  %T!&%T  0s!@!U BIT #BdeGItalienBenEItalyBesFItaliaBfrFItalieBjaUイタリア共和国 [GItáliaBruLИталия sI意大利!&(   -!@!U BFI #BdeHFinnlandBenGFinlandBesIFinlandiaBfrHFinlandeBja[フィンランド共和国 [JFinlândiaBruRФинляндия sF芬兰!&(h   @ BBY #BdeMWeißrusslandBenGBelarusBesKBielorrusiaBfrLBiélorussieBjaXベラルーシ共和国 [MBielo-RússiaBruPБеларусь sL白俄罗斯!&(  .!@!U BCZ #BdeUTschechische RepublikBenNCzech RepublicBesPRepública ChecaBfrITchéquieBjaRチェコ共和国 [(Bru]Чешская Республика sO捷克共和国!&( "  BIR #BdeZIran (Islamische Republik)BenDIranBes\Irán (República Islámica)Bfr]Iran (République islamique de)Bja]イラン・イスラム共和国 [\República Islâmica do IrãBruHИран sX伊朗伊斯兰共和国!&(g   g BUA #BdeGUkraineBen(jBesGUcraniaBfr(jBjaXウクライナ共和国 [HUcrâniaBruNУкраина sI乌克兰!&(X  !&   !@!U BHU #BdeFUngarnBenGHungaryBesHHungríaBfrGHongrieBjaXハンガリー共和国 [GHungriaBruNВенгрия sI匈牙利!&(   &O!@!U BES #BdeGSpanienBenESpainBesGEspañaBfrGEspagneBjaLスペイン [GEspanhaBruNИспания sI西班牙!&( {   .!@!U BBG #BdeIBulgarienBenHBulgariaBes( BfrHBulgarieBjaXブルガリア共和国 [IBulgáriaBruPБолгария sL保加利亚!&(  #!&#  *¹!@!U BBE #BdeGBelgienBenGBelgiumBesHBélgicaBfrHBelgiqueBjaRベルギー王国 [( BruNБельгия sI比利时!&( " + BTR #BdeGTürkeiBenFTurkeyBesHTurquíaBfrGTurquieBjaRトルコ共和国 [GTurquiaBruLТурция sI土耳其!&( $  *s!@!U BAT #BdeKÖsterreichBenGAustriaBes( BfrHAutricheBja[オーストリア共和国 [HÁustriaBruNАвстрия sI奥地利!&(   BAL #BdeHAlbanienBenGAlbaniaBes( XBfrGAlbanieBjaXアルバニア共和国 [HAlbâniaBruNАлбания sO阿尔巴尼亚!&( : " & BLB #BdeGLibanonBenGLebanonBesGLíbanoBfrELibanBjaUレバノン共和国 [( BruJЛиван sI黎巴嫩!&(  )!@!U BNL #BdeKNiederlandeBenKNetherlandsBesGHolandaBfrHPays-BasBjaRオランダ王国 [NPaíses BaixosBruTНидерланды sF荷兰!&( E " [ BKW #BdeFKuwaitBen( Bes( BfrGKoweïtBjaOクウェート [( BruLКувейт sI科威特!&( "  BSA #BdeMSaudi-ArabienBenLSaudi ArabiaBesNArabia SauditaBfrOArabie saouditeBja[サウジアラビア王国 [OArábia SauditaBru]Саудовская Аравия sO沙特阿拉伯!&(Q  _L BRS #BdeGSerbienBenFSerbiaBes(8BfrFSerbieBjaLセルビア [GSérviaBruLСербия sL塞尔维亚!&( "  BJO #BdeIJordanienBen[Hashemite Kingdom of JordanBesHJordaniaBfrHJordanieBja]ヨルダン・ハシミテ王国 [IJordâniaBruPИордания sF约旦!&(  BAF _r* #BdeFAfrikaBenFAfricaBesGÁfricaBfrGAfriqueBjaLアフリカ [(dBruLАфрика sF非洲 ! BLY #Bde]Libysch-Arabische DschamahirijaBenELibyaBesXLibia, República ÁrabeBfrELibyeBja] 社会主義人民リビア・アラブ国 [XLíbia Árabe JamahiriyaBruJЛивия s[阿拉伯利比亚民众国!&(  -8!@!U BIE #BdeFIrlandBenGIrelandBesURepública de IrlandaBfrGIrlandeBjaRアイルランド [GIrlandaBruPИрландия sI爱尔兰!&( " l BAZ #BdeMAserbaidschanBenJAzerbaijanBesKAzerbaiyánBfrLAzerbaïdjanBja]アゼルバイジャン共和国 [KAzerbaijãoBruVАзербайджан sL阿塞拜疆!&(" " n BAE #Bde\Vereinigte Arabische EmirateBenTUnited Arab EmiratesBesWEmiratos Árabes UnidosBfrTÉmirats Arabes UnisBjaXアラブ首長国連邦 [WEmirados Árabes UnidosBru]Объединенные Арабские Эмираты sX阿拉伯联合酋长国!&( "  BAM #BdeHArmenienBenGArmeniaBes( BfrHArménieBjaXアルメニア共和国 [HArmêniaBruNАрмения sL亚美尼亚!&(  (8!@!U BDK #BdeIDänemarkBenGDenmarkBesIDinamarcaBfrHDanemarkBjaUデンマーク王国 [(BruJДания sF丹麦!&(x  .k BIM #BdeIInsel ManBenKIsle of ManBesKIsla de ManBfrKÎle de ManBjaIマン島 [KIlha de ManBruMМэн, о-в sF曼岛!&(MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeNGeoIP2-CountryKdescriptionBen]-GeoIP2 Country Test Database (fake GeoIP2 data, for example purposes only)Jip_versionIlanguagesBenJnode_countKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/GeoIP2-DensityIncome-Test.mmdb000066400000000000000000000057711507532544400327470ustar00rootroot00000000000000{R      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ RSTUVWXYZ[\]^_`ab{cdexfhgijklmnopqrstuvwyz|}~    ` !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQSTUVWXYZ[\]^z_`abcdoefghijklmn`pqrstuvwxy`|}~Naverage_income~CRpopulation_density `2 =MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeTGeoIP2-DensityIncomeKdescriptionBen]3GeoIP2 DensityIncome Test Database (fake GeoIP2 data, for example purposes only)Jip_versionIlanguagesBenJnode_countKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/GeoIP2-Domain-Test.mmdb000066400000000000000000000142661507532544400314030ustar00rootroot00000000000000*33333_ 3 3 3 3 3333333333333333333 3!3"3#3$3%3&3'3(3)3*3+3,3-3.3/303132333435363738393:3;3<3=3>3?3@3A3B3C3D3E3F3G3H3I3J3K3L3M3N3O3P3QPR3S3T3U3V3W3X3Y3Z3[3\3]3^3_3`3absc3d3epf3g33hi3j3k3l3m3n33oC3q33r33tuKv wx3yz3{|33}~3333333W333333333d3333333d3d33333333q3qq333qqqqqq3q333333333333333333333333333333333333333333W3333W3W333333333333333333333 3 3 3 343&3333333333 3!"3#$%3'33()3*33+3,-33./W301W323W3W35637383933:3;<33=>3?33@AFBCD3E3G3HIJ3LcM3NZ3OP3Q3R3S3T3U33VW3X33Y33[3\3]^3_33`3a3b3d3e33fgu3hi33j3k3lmnopqrs3t33v33wx3y3z3{3|3}3~333333333333333333333333333333333333333333333333333333333333333333333333,3O*33333333333333333333333333333333333333333333333333 33 3333  3 33333333333333333333 3!3"3#33$3%3&'3(3)333+>,3-3.3/330312333343563373893:<3;<<=<3<3?3@A33B3C3DE3F33G3HI33JK3L3M33NS3333Q3R3S3T3U3V3W3X3Y3Z3[3\3]3^3``3a3b3c3d3e3f3g3h3i3j3k3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}3~3333333333333333333333333333333333333333333333333333`3333333333333`3333333333333333333333333333333333333333333333333333333333`33333333333333 3 3 33  3333333333333333333 3!3"3#3$3%3&3'3(3)3n33+3,3-3.3/30133233FdomainKmaxmind.com Inuvox.net Iqwest.net Mspeakeasy.net Lshoesfin.NET Mameritech.net Kpacbell.net Kverizon.net Icovad.net Jpopwifi.it Lin-addr.arpa Ioleane.fr Gbbox.fr Mbredband2.com Stelebecinternet.net Lreplaced.com Scomcastbusiness.net Igol.ne.jp Jsgotti.org Gsfr.netMaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeMGeoIP2-DomainKdescriptionBen],GeoIP2 Domain Test Database (fake GeoIP2 data, for example purposes only)Jip_versionIlanguagesBenJnode_count3Krecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/GeoIP2-Enterprise-Test.mmdb000066400000000000000000000210561507532544400323070ustar00rootroot00000000000000T]]]]] ] ] ] ] ]]]]]]]]]]]]]]]]]]] ]!]"]#]$]%]&]'](])]*]+],]-].]/]0]1]2]3]4]5]6]7]8]9]:];]<]=]>]?]@]A]B]C]D]E]F]G]H]I]J]K]L]M]N]O]P]QR]S]T]U]V]W]X]Y]Z][]\]]]^]_]`]abc]d]e~f]gh]]i]j]]k]l]m]n]op]]q]rs]]tu]v]w]x]y]]z]{|]]}]m]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]  ] ] ] ]]]]]]]]]]]]]]]]]]]] !e"O#]$]%H&:'](])]*]+],]-].]/]0]1]2]394]5]6]7]8]]]]];]]<]=>]?]@]A]]B]CD]E]F]]G]]I]]JK]]LM]N]]]]PQ]R]S]TX]UV]W]]]]YZ][]]\]]^]]_]`a]b]]cd]]]f]]ght]i]jk]l]m]]no]p]]q]r]s]u]v]w]x]y]z]{]|]}]]~]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]']]]]]]]]]]]]]]]]]`]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ] ] ] ] S]]]]]H]]]]]]]]]`]] ]]!"]#]$]%]&]'](])]*]+],]-].]/]0]1]2]3]4]5]6]7]8]9]:];]<]=]>]?]@]A]B]C]D]E]F]G]^]]IJ]]K]LM]]N]O]PQ]R]]]`]]U]V]W]X]Y]Z[]]\]]DcityJconfidence2Jgeoname_id(EEnamesBenGBoxfordIcontinentDcodeBEU _r, #BdeFEuropaBenFEuropeBes TBfr ^BjaOヨーロッパEpt-BR TBruLЕвропаEzh-CNF欧洲Gcountry _ (5Hiso_codeBGB #BdeWVereinigtes KönigreichBenNUnited KingdomBesKReino UnidoBfrKRoyaume-UniBjaLイギリス Bru\Великобритания F英国HlocationOaccuracy_radiusdHlatitudeh@IIlongitudehItime_zoneMEurope/LondonFpostal @COX1 Rregistered_country . Tis_in_european_union BFR #BdeJFrankreichBenFFranceBesGFranciaBfr"BjaUフランス共和国 GFrançaBruNФранция F法国Lsubdivisions F _ CENG #BenGEnglandBesJInglaterraBfrJAngleterre " 2a CWBK #BenNWest BerkshireBru]Западный Беркшир L西伯克郡FtraitsOstatic_ip_scoreh?GzH 5 @BAS _r+ #BdeEAsienBenDAsiaBes#=BfrDAsieBjaIアジア EÁsiaBruHАзия F亚洲 c  BBT #BdeFBhutanBen#BesFButánBfr#BjaRブータン王国 FButãoBruJБутан F不丹!Q![!mh@;!h@V!LAsia/Thimphu!  /U!! BRO #BdeIRumänienBenGRomaniaBesHRumaníaBfrHRoumanieBjaOルーマニア HRomêniaBruNРумыния L罗马尼亚"Xautonomous_system_numberŒDFdomainLshoesfin.NETRis_anonymous_proxy!CispKLoud PacketLorganizationOzudoarichikito_#h?\(Iuser_typeTsearch_engine_spider   N #BenGChatham 5 @BNA _r- #BdeKNordamerikaBenMNorth AmericaBesMNorteaméricaBfrQAmérique du NordBjaO北アメリカ QAmérica do NorteBru]Северная Америка I北美洲 c _e BUS #BdeCUSABenMUnited StatesBesNEstados UnidosBfrKÉtats-UnisBjaUアメリカ合衆国 &,BruFСША F美国!Q![!mh@E,?!hRc{J#:Jmetro_code!PAmerica/New_York! @E12037  ! _e BUS #&"[ ] NA BNY #BdeHNew YorkBen&BesJNueva YorkBfr&BjaUニューヨーク州 KNova IorqueBruOНью-Йорк I纽约州"$9O]autonomous_system_organizationXFairPoint CommunicationsOconnection_typeICable/DSL$Hfrpt.net$!Sis_legitimate_proxy!Uis_satellite_provider!CispXFairpoint Communications$'#% %Kresidential  * (W #BdeFLondonBen(9BesGLondresBfr(IBjaLロンドン (IBruLЛондон 5 ? c (5 BGB # !Q![d!mh@IN;6!hfA!!!&"[ * _ CENG #"}"'ICorporate$Lin-addr.arpaCispTAndrews & Arnold Ltd$YSTONEHOUSE office network#% %Jgovernment  3 )j #BdeJLinköpingBen(LBfr(LBjaXリンシェーピング I林雪平 5 ? c (!! BSE #BdeHSchwedenBenFSwedenBesFSueciaBfrFSuèdeBjaXスウェーデン王国 GSuéciaBruLШвеция F瑞典!Q![L!mh@M5Vl!!h@/;6!PEurope/Stockholm! ,T!! BDE #BdeKDeutschlandBenGGermanyBesHAlemaniaBfrIAllemagneBjaXドイツ連邦共和国 HAlemanhaBruPГермания F德国"[ 3 ( AE #BenUÖstergötland CountyBfrWComté d'Östergötland"$sN'bLBredband2 AB'($Mbredband2.comCisp(!$FBevtec#% %(- 5 @BNA _r- #Bde%bBen%qBesRAmérica del NorteBfr%Bja% %Bru% % %!Q![!mh@B ě!hXtS!OAmerica/Chicago! (5 BGB # "$'bKCELLCO-PARTCispPVerizon WirelessSmobile_country_codeC310Smobile_network_codeC004$(  2  #BdeKChángchūnBenIChangchunBfr(nBjaI長春市BruNЧанчунь F长春 5#" _  BCN #BdeEChinaBen(Bes(BfrEChineBjaF中国 (BruJКитай (!Q![d!mh@E =q!h@_TTɆ!KAsia/Harbin!  BCN #("[ F  B22 #BenKJilin Sheng F吉林"#h?(\)%( 5#" _ 8 BPH #BdeKPhilippinenBenKPhilippinesBesIFilipinasBfr(BjaXフィリピン共和国 (BruRФилиппины I菲律宾!Q![y!mh@*!h@^!KAsia/Manila! @E34021 ! 8 BPH #(Srepresented_country _e BUS #&DtypeHmilitary"#h? =p"$!#h?Q"'!#(  ( X$ #BenFMiltonBruNМильтон 5(_ %!Q![!mh@G*0!h^'RT`&3!SAmerica/Los_Angeles! @E98354 (!("[ c X_ BWA #BenJWashingtonBes(VBfrSÉtat de WashingtonBjaRワシントン州BruRВашингтон L华盛顿州"$''CispLCentury Link$OLariat Software#(%(- 5#" e BJP #BdeEJapanBen( BesFJapónBfrEJaponBjaF日本 FJapãoBruLЯпония (,!Q![d!mh@A׹`H!h@axP3:!JAsia/Tokyo!(MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeQGeoIP2-EnterpriseKdescriptionBen]0GeoIP2 Enterprise Test Database (fake GeoIP2 data, for example purposes only)Jip_versionIlanguagesBenJnode_count]Krecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/GeoIP2-ISP-Test.mmdb000066400000000000000000002255171507532544400306320ustar00rootroot00000000000000%v%%%%> % % % % %%%%%%%%%%%%%%%%%%% %!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q/R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a bcdefsg%%hiqj%k%l%m%n%o%p%%5r%d%t%uv%wx%%yz%{%%|%}~%%%%%%%%%%%%%%%%%%%%%%55555555555555E55%jj%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%a%% % % % % %%%%%%%%%%%%%l9% ((!"(#($(%(&('((x)X*D+7,1-/(.9((09(25349((969(98=9;:(9(<((9>A?@(9(9BC(9(9EPFKGI(H9(J(9(LNM(9((O9(QTR(S(9((UVW9((9YhZa[^\((]9(_(9`(9bfcd9(e9(9g(9(isjn(klm9((9op(9qr(99((t(uvw(9(9yz{(|(}~((99(99(9((9(99((((9(((9(((999(9(((99(9(9((9((9(9(9((9(((99(99(9(9(99((9%X%X%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4   FF  b- !"#$%&'()*+,w./01235867%%%:Q;%%<=%%>?P@%%AB%%CD%E%%F%GH%I%J%%KL%M%N%%O% %,RS8%%TU%%VW%X%qYZ%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%%mnos%pq%%r%t%u%vw%x%%yz%{%%|%}%~%%%%%%%%%%%%%% % % I% q%%% %%% % %%%%%%%%%%%%%% %%%%% %%%%%%%%!%%%%%%%%%%%%%%%%!%%%%%%%%%%%!,%%%!,!,%%%%%%!]%%%%%!v%%%%%%%%%%%%%%%%%!%%%%%%%%%%%%%% %  % %% %%%%%%! jD.%%%% %%!%"%#%$%%%&!'!()!!*!+,!!-!!%/%0%1%23%4%%5%67%8%9%:%%;<%=%>%%?%@A%B%%C%"$EYF%G%%H%I%J%K%L%M%NOUP%QSR%"/%T%%"/V%%W%X"/%Z%%[\%%]^%%_`%a%%b%cd%%ef%g%h%i%%":klm%%no%%p%q%rs%%t%u"Iv"Iwx"Iy"I"Iz"I{"I|}"I"I~"I"I"I"I"O%%%%%%%%%"""%"%%%%%%""""""""""""""%"%"%%%%%%%%%%%%%%#P%%%%%%#j#j#j#j#j#j#j#j#j#j#j#j#j#p%%%%%%%%%%%%%%%#%%%%%%%%#%%%%%%%%%%%%#%#######$%%V$*$/%$/%%$/%$/% %%   % %%%%$L%%%%%%%$L%PB(%#!%% $m%%"%$|%$%%%&'%%$)<*6+1,%-%.%/%%0$L%2%%3%45%$L%%78%9%%:;%$L%%=>%?%%@A%$L%CFD%%E$%%G%HI%J%KM%L%$LN%O%$L%Q%R%SUT%%$/%$/WzX\Y[%Z$%$%]n%^_%`fa%b%%cde%$%%%ghk%ij%%% %lm%%?%o%pwq%%Wrs%W%Wtu%Wv%W%d%Wxy%%%%%{|%}~%%%%%%&%&>%%%%%%%$L%%%%%$L%%%%%%%&S%&S&S&S%%&S&S&S&S&S&S&S&S&S&S&S&S&Y%&S%&S%&S%%%%%%%%%%"/"/%%%%%%%%"I"I%"I%"I%"I"I"I"I"I"I"I"I"I"I"I"I"I"I"I&t%&&'%%"%%''''G'G''G'G''''G'G'G'G'G'G'G'G'G'G'G'G'G'G'G'^'G'''G'G'' ''G 'G'  (%%&%%&&&&&&&&&&&& &!&&"#&$&&%&&'&'&)l*T+%,E-%.%/%0%1%243'%'5%6C7''89':'';'<'=>'?'@'A''B''D%'%F%G%%H%I%J%K%LM%%NO%P%%Q%R%S%'UV%'W'%X%YZ%[%%\%]^%_%%`a%%bc%d%e%%fg%h%i%%j%k%(mn'o%pq%r%s%tu%%vwx%y~z|%{%"/}%%"/%%%"/%%"/"/%%"/%%%"/%%%%%%%%%%"/%%%"/%"/%"/%%%%%%"I%"I%"I"I"I"I"I"I"I"I"I"I"I"I"I("I%&%%%%'%%%%%%%%%%%%%%(M%(Y%%%%%%%%%%(((((((((((((((%(%%%%%%%%%%%%%%%%%%(% %%%%%%%%%%%  % %% ))%%%%%%%%%%%%%%)>%{ O!M%"#%$E%>&8'3(/),*%+%)T%%-.%)m%0%1%%2)%4%%56%%7)%%9%:%;%<%=)%?%%@%A%B%C%D)%F%G%H%%I%J%KL%*,%N%%PdQ%R%S%T%U%%VW%X%%YZ%[%\%%]^%%_%`a%%bc%*M%e%*f%gh%i%%jk%l%m%n%%op%%q%rs%t%%uv%w%x%y%z%%*|}~*%%%%%%%%%**********%%%%%%%%%%%+8%(+N%%%%%%%%%%%%%%%% %%%%%%%%+u%+u%+u+u+u+u+u+u+u+u+u+u++u%%%%+u%%%%%%%%%%%%+%%%%%%%%%%%++++++++,*%%%%%%%%%%%%%,,1%%%%%%%%%% % %% %  %%)>U%%%(- %%%%%%%%%%,!%%",>#,>$%,>&,>,>',>(),>,>*+,>,>,,[,>.%/<0%%1%23%4%%5%67%%89%:%;%%,=N>%?%@%A%B%C,D,,EF,,GH,I,J,,K,L,M,,%OP%%Q%RS%T%%,%VWX%%YZz[e%\%]^%_%%`a%b%%c%d,%fog%%h%i%j%kl%m%%n,%%p%q%r%st%%uv%%w%x%y%,{%|}~%%%%%%%%- %%%%%%%%%-%%%%%%%%%-!%%%%%%%+%%%%%%%%%%%%%%-9%%%%%%%-B%%%%%%%%%%%,%%%%%%%%%%%%-R%%%%%%%%%%%)>%%%%%%%%%-^%%%%%%%%%%%%%%-k% W %%&&%%%% %%%%%% %% % %  %%%V'!-y-----...3.N.f% ...."&.#$%.//0/F/\/q(?)1/*+.,-/////0/0-00250H30a40y069780001:<1;1/1H=>1_1t%1@H1ABECD1112FG22.2H2dIL2~J2K22MPNO2233(QS3?R3S3oTU33%3W%X%YqZb[^\]334 4"_`4:4R/a4j4~cjdgef4%44hi4455)knlm5@5W5n5op5%55rwst5%%u%v6 6x%y|z{636M6i%}~666%667 7/7a%%7777%%8%88?8Z78s8%78888889)888889G%%999%9%5%%%:%:!%%%%:?%%:R%::%%::;%%%%;$%;T;x;%;;%% <>F>Q>>>?%% ? @B%B%B% C F D E%C%C9 G H%COCmC% J K% L%% M% N O% P%%C R% S Z% T U% V%% W X% Y%C% [ \ t ] g ^ a _% `%%C b e c dC%%D f%%D7 h n i l j kDN%%Dh m%%D o r p qD%E %% sE3% u v ~ w y x%%EV z } {% |%Ex%E%  % E %%E %E% %% B%B% %F#% FZ%%F% F% % % %E3% %%F% % % %F % % G % %% %G) % Gg%%G %% G G G G G G G G G%G %%G % % % % %% %%A % % % %%G% % % % %% % % %H% % % %% % %% % % % % % %H&% 4 & %% % % HD% % % % %Hf%H %H  H H H HHH HH HI   I,IA%Im%  I  I,II I I II I  Im Im I J J;Jl  %    JJ JJK5  KpKK   !  KKLLO " $Lf #%L}LLIAL '%% ( )%% *% +% , -%% . /% 0%% 1 2%% 3% 5 6 7 % 8 9&> : m ; a < D% = >% ?% @% A%% B% C$L% E [ F P G% H L% I% J% K%$L M%% N% O%$L Q V R% S% T%% U$L% W%% X% Y Z%%$L \% ]% ^%% _% `%$L b%% c d h e%% f g%%$L% i% j% k l%%$L n o ~ p w q% r%% s t%% u% v%$L% x y%% z {% |% }%$L% %% % % % % %%$L % % %% %% %$L% % % %% % % %$L %L % % % %L %M M!% %MO%M} %MM % % %M % %M % %%N% % %% %%N % %N- N- %NI%Nm$L $L$L $L$L N$L $L$L $L $L$L $L$L NN % % %% % % % % % % % %% %N%% % (M%% % %% %% % % %% % %% % % % % N% H % % 7 %%   %% % %O %   %O %% O %  % % %%O  %  %O %  % %O % %O  (  !  %  %%O % %O % " %% #% $%O &% '%O % ) 2 * - +%% ,%O . 0% /O % 1%O %% 3% 4 5 6O %O % 8% 9% :%% ;% < =% >% ? @O'%% A B E% C DO'%O' F% G%O'% I%OS J K%% L% M N%% O% P% Q R% S VO T U%O%O% X Y  Z [ r \%OS ] ^ j _%% ` a i b% c%% d e g% fO% hOO%P%% k% l m% n%% o p% q%P% s t% u % v% w% x% y z% {% |  } ~PK%PK% :%: % :%: %:%% % % %% % % %%P| % % % % %% % % % % %PP% %P% %%P % %%P% %P% %% % % % % % % % % % %P%% % P %% %Q % %% %QC% %% % % %% % % QX%QX %QX% % %% % %% % % % Qp%% % %% % % %% % % % %% % % % %%Q% % % %Q% % %% % % % %   % %%Q% % Q% B 3 !% %   %  % % Q% % % % %%Q%  %%  %% %  %% %R% " #% $%% % &% '% ( , )% *% +%%RC - 0 .% /%RC%% 1% 2%RC 4 A 5%% 6% 7% 8 9%% : ;%% < =% >% ?% @Ri%RiOS% C a D V% E F% G O H% I%% J% K% L M%R NRR% P Q%% R% S T%% U%R% W% X Y%% Z [%% \ ]% ^%% _% `%RC b c x d o% e% f% g% h i%% j k% l% m%% nR%% p% q% r% s% t% u% v% wP% y% z%% {% | }%% ~ %% % %% %O% % %% %% % % % % % H% % % %% % %%R OS % %% % % % % % % % %% % R% % % % % % % %% % % %S% %S%% % % % % % %% % % QX% % % % % % % % %% % %S S%% % % % % %% % SB% % % % % %% %% % P%% % % % % % % %% P%  % % % % % % % %  %% % % %% SQ%%  % %%  %% %SQ% % % %% %  % %   %Q%% %Q %     O  1  (% !%% " #%% $% % &%% 'Sf%% )% * +%% ,% - .% /%% 0S}% 2 A 3% 4 5 I%% 6% 7% 8 9 <% :% ;%S = ? >%S%% @S}% B% C%% D E%% F% G H%% I J%% K% L% M% N%S P Z% Q% R S%% T U%% V W% X%% YS% [ q \ i% ] ^% _ d% ` a%% b c%T8%% e% f% g% h%Tf% j% k l%% m n% o% p%T% r % s% t u%% v% w x% y%% z% {% | } % ~ TT T TT %T T T T% % % % %% % T%% %% % U-Ud %U%  % % %% %% %U % % %% % % %UV% % %% % %% %V; %% % V`%% %% %V % %% %V%% % % % % % % % % % % % % %V% % % % % % %%V% % % % %% W"% %  % % % % %W/%% % %% %%W/%  % %WRWhW WWX XM XMXMXMXMXMXMXMX   XXYY6  YhYYYZ ZIZvZZ[[#C2[*![[[O [[[k[[["([#[$%[&['[[[)[[[+[,[-[.[/[0[1[\%[[34[[56[[78[9@:[[;[<[=[>[?\3[[AB[\q[D[EFG_HPI[J\KN[LM[\\O[[\QXR[S[T[U[[VW[[\[YZ[[][\] [[^]A[`jae]Qbc[d[]r[[fg[h[]i][kr[l[m[n[op[[q][s|tyuwv[[^ [x^[z[{[[^V}[[~[^q[[[^[[^[[^^[[[^[[[_[[[[[]r[_[[[[[[[_/[[_Q[[[_[[[_[[[_[[[_[_`#[[]r`:`Y[`}[[`[`[%%%%%%%%%`%%`%%%%%%%%%a%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%a?%%%%%%%%%%%%%% % % % %%aq%7(%%%%%%%a%%"%%%% %!a%%#%$%%%&%'%%%)*%+%,%%-%./%0%%1%2%34%%56%%a8N9>:=;%<%%%a%%?%@%AB%C%D%%E%F%G%HI%J%K%%LM%%bO%PpQg%RS%T%%UV%W%%X%YZ%[%%\%]%^%_`%a%b%%c%de%f%b1%%h%i%j%k%l%m%n%o%b>%&r;st%uw%vbU%x%yz%{%|}bl%~%b%b%bc%c$%cI%crccd %d=d_%d%%d%d%e/eL%e|%ee%f!%fV%f%%ff%ggg7ggfgg%%gh%h8%%h]hh%hii<%%ibi%ii%j%%%j1%jaj|j%jj%k %%k6kEkkk%kkkl(%lKl{l%%lm %m$mRm%%mmn%nSn%%n%nn%ooE%oo%o~%o%op p8 %   %% %%pU%%%%pU%%pk6%m %'%p%%%% %!%%"%#%$%%&%(8)%*%%+%,-%%.%/0%%1%2%34%%56%%7%p9:%%OS<=s>d?V%@A%B%C%%D%E%FG%%HI%J%K%%L%MN%%OP%Q%R%%S%T%Uq %W%%XY%%Z[%%\]%%^%_%`%ab%c%H&%e%f%g%h%i%%jk%%lm%n%%op%%qr%%q#t%u%v%w%x%yz%{%%|}%%~%q6%%%%%%%%%%%qZ%%%%%%%%%%%%qw%%%%%%%%%%%%%%q%%%%q%%%q%%%%%%%%%%%%%%%%%%%%%%q%%%%%%%%%%%%%%%%%q%%%%%%%%%q%...%%%%%%%%%%%%%%%%%%%%% %%%%%%%%% % %% %% %%%%%%%%%%%q%%%%%%%r  %%!"%%#$&%%%%%'%()%*%%+,%%- %/o0Q%12%%34%5<%6%78%%9:%%;%r)%=%>%?@D%AB%C%%r=%EF%%G%HI%%J%K%L%M%NO%%Pr\%R\SWT%U%%V%rf%X%Y%Z%[r%]%%^_g%`a%%bc%d%%e%f,%h%i%j%k%%l%m%nr%pqr%s%t%%uv%w%x%%y%z%{|%%}~%%%%r%%%%%%%%%%%%%r%%%%%%%%%%%s#%%%%%%%s@%%%%%%%%%%sisi%c!%%%%%%%%%%s%%%%%%%%%,%%%%%%%%%s%%%%%%%%%%%s%%%%%%%%%%s%%%%%%%%%%%s%%%%%%%%%%%%s%%%%%%%% %% % % % %%%%%s%%%%%%%%%%%%%% %t"S#=$6%%%&'%(%%)*0%+%,-%%./%%,%12%3%%45%t>%7%%89%%:%;<%%(>O?%%@A%%B%CD%E%%F%GH%I%J%%K%L%M%N%tKP%Q%%Rrf%%T%UV%W%%XY%%Z%[%\]`%^_tz%tza%b%tz%dze%fn%gh%%i%jk%%l%mt%o%ptq%r%s%t%u%%v%wx%y%t%{|%}%~%%%%%u%%%%u,%%%%uX%%%%%%%%%%%%%%%uu%%%%u%%%%%%,1%%%%%%%%u%%%%%u%F%%%%%%v%%%v%%%%v5%v5%v5%%%%%%%%vV%vVvVvV%vV%%%%%vl%vvvv%%%%%vvvvv%%%w3%%%%%wg%%%%%%w%w%w%%  %% % % %%%%%%w%%!%%%%%%w%% %%w">#'%$%%%&%w%()-%*+%x,x%xL./60%1%24%3x%%5%x7%8;9%:%x%<%%=%x?%@%%ABD%Cyy6%E%yK%GHI%JK}LlM%N%OjPe%QRdS]%T%U%V%WX%Y%%Z%[%\yd%^%_%`%a%%bc%%y%yyf%g%h%i%yk%%ym%%n%ops%qr%z%%tu%z3vwz3z3xyz3zz3{z3|z3zWz3%~HHHHHz%%%%z%%%%%%z%%z%%%%%z%%{-{-{-{-{-{-{-{-{-{-{-{R%%%{o%{{%%%{{%%%|%H%HH%%%%|/%%|h||%%%%|%|%%%|%%}}!%%%%%%%%%%%%%%%%}H%%%%%%%%%%%%%%%%%%%%%%%%}^%%%%%%%%%%}{% % % %  %%%%%%%%%%%}%%%%%%%% %%!"%#%%$%}%&%'(%%)%*%+%,-%%}/0H1%2%%3%45%%6%7%89%%:;%<%=A%>?%%@%}B%C%D%%EF%G%}%IcJ%KUL%M%N%O%%P%QR%%ST%%}V%%W%X%YZ%%[%\]%^%%_%`a%b%%}desf%g%h%i%j%k%l%%m%n%op%q%r%%%%t%uv%%w%xy%%z%{%|%}~%%%}%%%%%%%%%%%~%%%%%%%%%%%%%%%%%%%%%%%%%~!%%%%%%%%%%%%%%%%"/%"/%%%%%%%%%%%%%%~2%%%%%%%%%%%~R%Z%.%%%%%%%%%%%%%%%%%~h%%%%%%%%%%%%%%%%%%~h%%%%%%%%% ~ ~%~~  ~ ~~~~~~~~~~~~~~"%%%%% %%!%"#%$%%%&%%'(%%)*%+%%,-%%":/F%01%2%3%4%%56%7%%8%9%:;%<%%=>%%?@%%A%BC%%D%E~%%GH%%I%J%K%LM%N%%OP%%Q%RS%T%U%V%W%X%%Y%q[\]^_}`valbgc%%d%e%f%~h%%i%j%k%~m%%nos%pq%%r%!]%tu%&Fw%%x%y%z%{%|%W%~%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%-R%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%%%V%%%%%%%%%%%%%%%%))% % %% %  }}%%}.%)%%%%%%%%%%%%% !%%"#%$%%&%%'%(%%*+%%,%-%/c0P%12A%34%5%%6%78%9=:%;%<%>?@%%%BCL%D%EF%%G%H%IJ%K%+8%%M%NO%%Q%%RS%%T%UV%W%%X%YZ%%[\%]%%^_%%`a%%b%"doe%%fg%%h%ij%%k%l%m%n^%p{%qr%s%%tu%%v%wx%y%z%w%%|}~%%%%%%%%%%%%%%%%% I I%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"%%"%""""""""""""N"%%""""%D%%%%%%%l%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %  % %%%%%%%%"%%%%%%%%%%% !%%%#$;%+&%'%%(%)%*9%,%%-%.%/0%%1%23%4%%5%6%7%89:H%H%%<=%%>%?@VAV%B%CV%EFoGc%H%IJ%%K%LMW%N%O%PQ%R%%S%TU%V%u%%XY%%Z[%%\]%^%%_`%a%%b%d%e%%f%g%h%i%jk%%lm%%n%pzqs%r%%tu%v%w%x%y%%{%|}%~%%%%%%%%%%%%H%%%%q%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'%%%T%%%%%%%x%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3%%%%%R%%%%%%%%%t%%%%%%%%%%%%%%%%%%%%% %  %% % %%%%%% %%% %%%%%%%% &%!"#%#$%%%%1'%#()#*#+##,-#K#%%%0%1%2%3%4%5%6%7%8%9%:%;%<%=%`?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%%%w%xZyz%{%|%}%~%%%%%%%%%%%%%%%`%%%%%%%%%%%%%%%%%%l%%%%%%%%%%%+%%DDDn%%%%`%%%'%%%%%2 ]      !"#$%&(%)%*%+%,%-./P012B34;56789:<=>?@A CKDEFGHIJBLMNOdQRSTUVWXY[\s]%^%_%`%a%bcidefghjklmnopqrt%u%v%w%x%y%z{|}%~%%%%%%%%%% %%%%%%%%%%%%3%%%]%h%%%%%%%%%%%%%%%+%%%%%%%%%%%%%%%%%%%%%%%P%%%e%%%p%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     (;FY%%%% %!%"#%%$%%CispZTOT Public Company LimitedLorganization Xautonomous_system_number]autonomous_system_organizationOTelstra Pty LtdCispPTelstra Internet CispVLevel 3 Communications CispJWifiNetComCispGFinecomCisp MCo-Mo ConnectCispMAT&T Services 0jCisp 0jCisp VAT&T Worldnet Services 0G LWHewlett-Packard CompanyCisp!< !CispQvsevolod_artemiev (XCispOrimomeikashite_ (tCispNregõ_kultsár (CispNturner_ménard (CispNhenio_zawadzki (CispHzhu_tang (CispLhakem_asfour (CispOmichael_herring (CispQvaleriya_lazareva (CispKleila_silva (9CispNignacy_sobczak (OCispQsophie_lacharité (hCispLisaac_holmes (CispRChina Unicom Hebei (CispWTaiwan Mobile Co., Ltd. (CispZSavecom International Inc. (Cisp] Digital Pacific Information Technology (CispZBroadband Pacenet Pvt. Ltd (1CispTChina Telecom FUJIAN (VCispVPT Universal Broadband (uCispSSTNet, Incorporated (CispSEhime Catv Co.,ltd. (CispQjeonju university (CispVHong Kong Science Park (CispPUnitech Wireless (CispNWebcentral.com (*Cisp]Bharti Airtel Lanka Pvt. Limited (CCispZChittagong Online Limited. (oCispSGlobal Mobile Corp. (Cisp( LGlobalmobileCisp]China Education and Research Network (Cisp( STsinghua UniversityCisp( ]Shijiazhuang Netdingthing Technology Co.,LtdCispZChangping District,Beijing (OCisp]ChengDu Dr.Peng Telecom & Media Group Industry Co. (tCispWReliance Communications (CispRPT. Mnet Indonesia (CispSPT. Beon Intermedia (CispHINDICLUB (Cisp] Korea Data Telecommunication Co., Ltd. ("CispVChina Telecom SHANGHAI (TCispOUNICOM ZheJiang (uCisp]Jiangsu Electrical Technology Education Center (CispDHCLC (CispQWharf T&T Limited (Cisp]Enterprise of Telecommunications Lao (CispYCallPlus Services Limited ($Cisp\Kuentos Communications, Inc. (HCisp]CMC Telecom Infrastructure Company (oCispYVector Communications Ltd (Cisp]Office des Postes et des Telecomm. de Nouvelle Cal (CispWChina Telecom Guangdong (CispGJNDINFO (!Cisp(! QJND CommunicationCisp CispVSOFTBANK TELECOM Corp. (ZCisp]SANYO Information Technology Solutions Co., Ltd. ({Cisp]Beijing Teletron Telecom Engineering Co., Ltd. (CispWits communications Inc. (CispCNTT CNTTCispRVodafone Australia ("Cisp]Beijing Bosheng Technology Co., Ltd. (?Cisp]KNET Techonlogy (BeiJing) Co.,Ltd. (oCisp]Beijing Bitone United Networks Technology Service (Cisp]Renjiao International Technology Corporation Ltd (Cisp# #Cisp]BeiJing Kuandaitong Telecom Technology Co.,Ltd (!Cisp] Shanghai Yixuan network technology CO.,LTD ([CispXChina Central Television (Cisp]Internet Initiative Japan Inc. (CispUPT. Cyberindo Aditama (CispUK-Opticom Corporation (Cisp]Asia Pacific On-Line Service Inc. (Cisp( ]Asia Pacific Onlie Service Inc.CispWBeiJing NBLLNET Co.,Ltd (vCisp]Beijing Yuexintong Information Technology Company (Cisp( ]Shanghai Xindong Network Co,.Ltd.CispNUNICOM Sichuan (CispMDreamline Co. (CispLeAccess Ltd. (3CispHBit-isle (JCisp]Universitas Negeri Yogyakarta (]CispKAircel Ltd. ZAircel gprs customer DelhiCisp( \Aircel gprs customer KolkataCisp( \Aircel gprs customer ChennaiCisp( ]Aircel gprs customer HyderabadCisp( YAircel GPRS Customer EastCisp( YAircel GPRS Customer WestCisp( ZAircel GPRS Customer SouthCisp]Sliced Tech Holdings Unit Trust (CispZC&M Communication Co.,Ltd. (Cisp]Beijing Gehua Catv Network Co., Ltd. (CispOPT Remala Abadi ( Cisp]Simtronic Technologies Pty Ltd ( 3CispLTata Indicom ( ]CispLFiserv India ( tCispIMobileOne ( CispPU Mobile Sdn Bhd ( CispZHostemo Technology Sdn Bhd ( Cisp]Total Access Communication PLC ( CispKGodaddy.com (! CispSDigicel Pacific Ltd (!CispUMammoth Media Pty Ltd (!=CispWBeagle Internet Pty Ltd (!]CispDKINX (!CispJAMWAYKOREA (!CispUASUSTek COMPUTER INC. (!CispKThe Cavalry (!Cisp]Elementary IT & Communications Ltd (!CispLDrik ICT Ltd ("CispOThree Indonesia ("Cisp]Augere Wireless Broadband Bangladesh Limited ("8Cisp]Elink-space (Beijing) Technology Co,. Ltd ' ("pCisp] Neuviz (PT. Piranti Prestasi Informasi) ("Cisp]Bogor Agricultural University ("CispXPT Sumber Data Indonesia (#CispWVainavi Industries Ltd. (#&Cisp]Universitas Muhammadiyah Malang (#HCispNMeralco Avenue (#sCispTWavecom Wireless Ltd (#CispPUniversitas Riau (#Cisp]Liberty Broadcasting Network Inc. (#Cisp]Meghbela Cable & Broadband Services (P) Ltd (#Cisp] Indusind Media and Communications Ltd. ($*Cisp]Goldfield Industrial Building ($\CispLAndheri East ($CispSRackCentral Pty Ltd ($CispUUnleash Computers Ltd ($CispTWeb Werks India Pvt. ($Cisp]Joint stock Commercial Bank for Foreign Trade of V ($CispNMCS Com Co Ltd (%7Cisp]VentraIP Group (Australia) Pty Ltd (%PCisp[i-System Technology Limited (%~CispZLangham Place Office Tower (% DDigiCispZCmb Taegu Dongbu Broadcast (% ZQuickWeb Hosting SolutionsCispWAirtel Networks Limited (&CispRFawri wilaya Batna (&6CispPAnis wilaya oran (&SCispRAnis wilaya Bechar (&nCispMMaroc Telecom PMaroc Telecom 3GCisp(& (&Cisp(& CIAMCispQSafaricom Limited (&CispIUnitel SA (&CispJMobinil 3G (&Cisp]MTN Business Solutions (Pty) Ltd ('CispOTelkom Internet ('=Cisp$ $Cisp[Airtel Networks Nigeria Ltd ('bCispMEtisalat Misr HEtisalatCisp(' ('CispGVodacom ('CispPAirtel Broadband ('Cisp]Second segment of Broadband IPs ('Cisp]Third segment of Airtel Broadband IPs (( Cisp]Reserved for Internet APN Allocation ((CispUAxtel, S.A.B. de C.V. (>Cisp]Informacion Al Dia Y Comput SA (> 0 LKCELLCO-PARTCisp(Smobile_country_codeC310Smobile_network_codeC004 ( UWireless Connect Ltd. FHKTNETCisp]Centro Nacional de Intercambio Automatizado (? EF-KOM 0 LXAOL Transit Data NetworkCisp& & PCircle 1 Network IGoversoftCispQCondointernet.net 02, L( 5Cisp( 5 ( 5CispKOi Internet (@V?V@VAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQ(RVSVTVUVVVWVXVYVZV[V\V]V^V_V`VabcdVefgVhijkVlVVmnVoVVpqVVrVsVtVuVvVwVxyVVzV{|VV}~VVVfVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV ,VVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVVVVVVVVV V[ V 6   V VVVVVVVVVVVVVVVVVVVV+!VV"V#V$%VV&'V(V)V*V+V,V-V.VV/V01VV23VV45V(V7K8VV9:VV;V<V=>V?VV@AVVBVCDVVEFVVGVHVIVJVLVMVVNOVVPQVVRVSVTUVVVVWVXVYZVV\VV]^jV_V`aVVbcVdVeVVfgVhViVVVkVlmVVnoVpVqVVrsVtVuVVvVwxVyVzV{V|V}V~VVVV:VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY" VVVVVVVVVVVVVVVVVVVVVVVVVVV#VVVVVVVVVVVVVVVVVV V VV  VVVVVVVVVVVVVVVVVVV V!V&V#FV$%/&VV'V(V)V*V+V,V-V.VV051V2V3V4VVVV67V8V9VV:;V<V=V>VV?V@AVBVCVVDVEV VGVHIVJVKVLVVMNVOVPVVQVRVSTVUVVVWVXV!CVZ'[\]^V_V`aubVcVdVeVfVgVhViVjVkVlVmVntoVpVqVrVsVVVVVvVVwVxyVzV{V|VV}V~VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV!aVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"}VVVVVVVVVVVVVVVVVVVVVVVV##VVVVVVVVVVVVVVVVVVVV  VV  VV V##VVVVVVVVVVVVVVVV VV!V"#V$VV%V&V#VVV)V*V+V,V-V.V/V0V1V2V3V4V5V6V`8V9V:V;V<V=V>V?V@VAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV[V\V]V^V_V`VaVbVcVdVeVfVgVhViVjVkVlVmVnVVVpVq5rVsVtVuVvVwVxVyVzV{4V|}V~VVV)VVVVVVVV`VVVVVVV%#%VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV&DVVVVV&VVVVVVVVVV V V V V VVVVVVVVVVVVVVVVVVV V!V"V#V$V%V&V'V(V'FVV*+VV,V-.VV/V0V12V3VVV`V6VV78V9V:V;V<V=V>VV?@VVAVBCVVDEVFVVGHVVIJVKVLV'ZVVNVOVPVQVRVSTVVUVVFtraitsOstatic_ip_scoreh?(\)Iuser_typeHbusinessIcontinentDcodeBASJgeoname_id_r+EnamesBdeEAsienBenDAsiaBes kBfrDAsieBjaIアジアEpt-BREÁsiaBruHАзияEzh-CNF亚洲GcountryJconfidencec IHiso_codeBIR XBdeZIran (Islamische Republik)BenDIranBesEIránBfr Bja]イラン・イスラム共和国 DIrãBruHИран X伊朗伊斯兰共和国HlocationOaccuracy_radius2Hlatitudeh@A_pIlongitudeh@I($ xItime_zoneKAsia/TehranRregistered_country I BIR X Xautonomous_system_number¬]autonomous_system_organization]Iran Cell Service and Communication CompanyOconnection_typeHCellularCisp"Lorganization" h? "HcellularDcity < I XBdeIDschankojBenHDzhankoyBruNДжанкой 6 ABEU I_r, XBdeFEuropaBenFEuropeBes"Bfr"BjaOヨーロッパ "BruLЕвропа F欧洲 P I g BUA XBdeGUkraineBen#BBesGUcraniaBfr#BBjaXウクライナ共和国 HUcrâniaBruNУкраина I乌克兰!b!l!~h@FPH!h@A2C\!QEurope/Simferopol! I g BUA X#>Lsubdivisions F I B43 XBdeDKrimBen]Autonomous Republic of CrimeaBfr]République autonome de CriméeBru]Республика Крым !pY!SCrimeaCom South LLC"HICable/DSLCisp$"g$ h?У =p "Kresidential" < IѠ XBdeHElazığBenIElâzığBfr$BjaLエラズーBruLЭлязыг I埃拉泽 6 @ Z I+ BTR XBdeGTürkeiBenFTurkeyBesHTurquíaBfrGTurquieBjaRトルコ共和国 GTurquiaBruLТурция I土耳其!b!l2!~h@CO/V!h@C-w1!OEurope/IstanbulFpostal AE23100 ! I+ BTR X%9# < Iџ B23 XBen$ !!E!]National Academic Network and Information Center"H$Cisp&"g& " ," 2 I(E XBenGBoxford 6" _ I(5 BGB XBdeWVereinigtes KönigreichBenNUnited KingdomBesKReino UnidoBfrKRoyaume-UniBjaLイギリス &Bru\Великобритания F英国!b!ld!~h@I!h!MEurope/London% ACOX1 ! I. Tis_in_european_union BFR XBdeJFrankreichBenFFranceBesGFranciaBfr'BjaUフランス共和国 GFrançaBruNФранция F法国# F I_ CENG XBenGEnglandBesJInglaterraBfrJAngleterre ( I2a CWBK XBenNWest BerkshireBru]Западный Беркшир L西伯克郡  h?GzH! I /U'a'v BRO XBdeIRumänienBenGRomaniaBesHRumaníaBfrHRoumanieBjaOルーマニア HRomêniaBruNРумыния L罗马尼亚 Ris_anonymous_proxy'vCispJWifiNetCom h?Q !jCispMAT&T Services"gVAT&T Worldnet Services h? =p" I#) XBenEYendi 6 ABAF I_r* XBdeFAfrikaBenFAfricaBesGÁfricaBfrGAfriqueBjaLアフリカ (BruLАфрика F非洲 I# BGH XBdeEGhanaBen(Bes(Bfr(BjaRガーナ共和国 DGanaBruHГана F加纳!b!l!~h@"b!h_o!LAfrica/Accra!(# I# Q BNP XBenONorthern Region  h?Q" ( IQ) XBdeKLos AngelesBen(BesLLos ÁngelesBfr(BjaRロサンゼルス (BruWЛос-Анджелес I洛杉矶 6 ABNA I_r- XBdeKNordamerikaBenMNorth AmericaBesMNorteaméricaBfrQAmérique du NordBjaO北アメリカ QAmérica do NorteBru]Северная Америка I北美洲 c I_e BUS XBdeCUSABenMUnited StatesBesNEstados UnidosBfrKÉtats-UnisBjaUアメリカ合衆国 (!BruFСША F美国!b!l!~h@AFs!h]-VJmetro_code#!SAmerica/Los_Angeles% AE90009 ! I_e BUS X(# Z IQ_ BCA XBdeKKalifornienBenJCaliforniaBes(BfrJCalifornieBjaXカリフォルニア州 KCalifórniaBruTКалифорния R加利福尼亚州 !!STowerstream I, Inc."HICorporateCispMTowerstream I"g( h?\( " ," ( IG XBenGHoustonBfr(BjaRヒューストン (BruNХьюстон I休斯敦 6(E (!b!l!~h@=+a!hW8}H(j!OAmerica/Chicago% AE77002 !(# Z IHE BTX XBenETexasBes(Bfr(BjaOテキサス州BruJТехас O德克萨斯州 !!]Qwest Communications Company, LLC"H$FdomainIqwest.netCispKCenturyLink"g( ( "$"  IRG+ XBdeISan JoséBenHSan JoseBes(CBfr(CBjaLサンノゼ (CBruOСан-Хосе 6(E (!b!l!~h@BR<6!h^yD('!(% AE95131 !(# < IQ_ BCA X( !H!TMegaPath Corporation"H$(Mspeakeasy.netCispISpeakeasy"gOVikco Insurance ( "Jgovernment 6 @ c I BBT XBdeFBhutanBen(pBesFButánBfr(pBjaRブータン王国 FButãoBruJБутан F不丹!b!l!~h@;!h@V!LAsia/Thimphu!( !ŒD(Lshoesfin.NET('vCispKLoud Packet"gOzudoarichikito_ ( "Tsearch_engine_spider" IN XBenGChatham 6(E (!b!l!~h@E,?!hRc{J#:(!PAmerica/New_York% AE12037 !(# ] INA BNY XBdeHNew YorkBen( BesJNueva YorkBfr( BjaUニューヨーク州 KNova IorqueBruOНью-Йорк I纽约州 !9O!XFairPoint Communications"H$(Hfrpt.net('vSis_legitimate_proxy'vUis_satellite_provider'vCispXFairpoint Communications"g( ( "$"( S 6(E (!b( x%( !(#( !9O!( M"H$(( m('v( {'v( 'vCisp( "g( h?ffffff "$" * I(W XBdeFLondonBen( MBesGLondresBfr( ]BjaLロンドン ( ]BruLЛондон 6" c I(5 BGB X&!b!ld!~h@IN;6!hfA!'=!(# * I_ CENG X' (Lin-addr.arpaCispTAndrews & Arnold Ltd"gYSTONEHOUSE office network ( "(H" 2 I(W X( I 6" &!b!l !~( !( !'=!(#' (( (" 3 I)j XBdeJLinköpingBen( Bfr( BjaXリンシェーピング I林雪平 6" c I('a'v BSE XBdeHSchwedenBenFSwedenBesFSueciaBfrFSuèdeBjaXスウェーデン王国 GSuéciaBruLШвеция F瑞典!b!lL!~h@M5Vl!!h@/;6!PEurope/Stockholm! I,T'a'v BDE XBdeKDeutschlandBenGGermanyBesHAlemaniaBfrIAllemagneBjaXドイツ連邦共和国 HAlemanhaBruPГермания F德国# 3 I( AE XBenUÖstergötland CountyBfrWComté d'Östergötland !sN!LBredband2 AB"H((Mbredband2.comCisp(m"gFBevtec ( "(H  h?ٙ """ 2 ILQ XBdeKMinneapolisBen(BesKMineápolisBfr(BjaRミネアポリス (BruVМиннеаполис R明尼阿波利斯 6(E _ I_e BUS XBdeCUSABen(Bes(!Bfr(3Bja(B (!BruFСша (i!b!l!~h@F|JM!hWM?(e!(M% AE55414 ! I_e BUS X([# F IL BMN XBenIMinnesotaBes(BjaOミネソタ州BruRМиннесота ! !PPrecision AS OrgCispMPrecision ISP"gMPrecision Org h?p =q "$" 2 I XBdeQHo-Chi-Minh-StadtBenPHo Chi Minh CityBesRCiudad Ho Chi MinhBfrDHCMVBjaRホーチミン市 UCidade de Ho Chi MinhBruNХошимин L胡志明市 6 @ c I BVN XBdeGVietnamBen(;Bes(;Bfr(;BjaLベトナム GVietnãBruNВьетнам F越南!b!l!~h@%҈p!h@Z4J!PAsia/Ho_Chi_Minh! I BVN X(7# < I" BSG XBde(Ben(Bes(BfrFSaigonBja( (BruPХо Ши Мин ( !G!]The Corporation for Financing & Promoting Technology"H$Cisp]The Corporation for Financing and Promoting Techno"gSFPT Telecom Company (k " , 6 ABNA I_r- XBde(WBen(fBesRAmérica del NorteBfr(Bja( (Bru( ( (!b!l!~h@B ě!hXtS!(M! I(5 BGB X& !!KCELLCO-PARTCispPVerizon WirelessSmobile_country_codeC310Smobile_network_codeC004"g(d" 2 I XBdeKChángchūnBenIChangchunBfr(BjaI長春市BruNЧанчунь F长春 6 @ _ I BCN XBdeEChinaBen(!Bes(!BfrEChineBjaF中国 (!BruJКитай (?!b!ld!~h@E =q!h@_TTɆ!KAsia/Harbin! I BCN X(# F I B22 XBenKJilin Sheng F吉林  h?(\) "$ "gLCityLink Ltd h?zG{ 6 @ _ I8 BPH XBdeKPhilippinenBenKPhilippinesBesIFilipinasBfr('BjaXフィリピン共和国 (6BruRФилиппины I菲律宾!b!ly!~h@*!h@^!KAsia/Manila% AE34021 ! I8 BPH X(Srepresented_country I_e BUS X(DtypeHmilitary  h? =p"  IH?i XBenJSugar LandBjaUシュガーランド (+BruSШугар-Ленд 6(E (!b!l!~h@=T!hW =q(j!(M% AE77487 !(# < IHE BTX X( !+!]Comcast Cable Communications, LLC"H$(Scomcastbusiness.netCispPComcast Business"g( h?Q " , ('v (/ ( 'v (/  h?ٙ "Xcontent_delivery_network  h?ٙ " ," ( IX$ XBenFMiltonBruNМильтон 6( (!b!l!~h@G*0!h^'RT`(3!(% AE98354 (!(:# c IX_ BWA XBenJWashingtonBes("BfrSÉtat de WashingtonBjaRワシントン州BruRВашингтон L华盛顿州 !"H$CispLCentury Link"gOLariat Software (/ "(H 6 @ _ Ie BJP XBdeEJapanBen(BesFJapónBfrEJaponBjaF日本 FJapãoBruLЯпония (!b!ld!~h@A׹`H!h@axP3:!JAsia/Tokyo! Ie BJP X(  h@zG{"( 6" ( !b!lL!~( f!( q(!( |% AF138 20 !( #( !sN!(m"H(((Cisp(m"g( (c "(H"( 6" ( !b(}%(!( #( !sN!(m"H(((Cisp(m"g( h@\( "(H 6 @ _ I BCN XBde(!BenZPeople's Republic of ChinaBesXRepública Popular ChinaBfr(6Bja(? (!Bru(N (?!b!ld!~h@A!h@Z@! I BCN X(N (` 6 @ (M!b(#!(M 6" _ I.'a'v BCZ XBdeUTschechische RepublikBenNCzech RepublicBesPRepública ChecaBfrITchéquieBjaRチェコ共和国 (@Bru]Чешская Республика O捷克共和国!b!ld!~h@H!h@.!MEurope/Prague! I.'a'v BCZ X(  h@zGMaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_type[GeoIP2-Precision-EnterpriseKdescriptionBen]:GeoIP2 Precision Enterprise Test Database (fake GeoIP2 data, for example purposes only)Jip_versionIlanguagesBenJnode_countVKrecord_sizeGeoIP2-Static-IP-Score-Test.mmdb000066400000000000000000000233321507532544400327150ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data~H     +7CO[gs !"#$%'&3'?(K)W*c+o,{-./012345678 9:#;/<;=G>S?_@kAwBCDEFGHIJKLMNOP+Q9RSTUVWXYZ[\]^_`abc7dCefOg[higjsklmnopqrstuvwxy'z3{?|K}Wc~o{ #/;GS_kw    +8 7 C O [ g s     ' 3 ? K W c o {   # / ; G S _ k w          + 7 C  O [ g s              ! " # $ % &  '( ) * + , - .  / 01 2 3 4 5 c67 o{:;<=>?@ABCDEFG`I J 'K 3L ?M KN WO cP oQ {R S T U V W X Y Z [ \ ] ^_#`/a;bGcSd_ekfwghijklmnopqrstu+v7wCxOy[zg{s|}~'3}?KWco`{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{      #/;GS_kw !@"#$%&'()*++7,C-O.[/gs0123456789:;<=>?'3?A_BKCWDcoEF{GHIJKLMNOPQR ST#U/V;WGXSY_Zk[w\]^`abcdefghi+7jCklO[mgnsopqrstuvwxyz{|'`3?KWco{Escoreh@\( h@QR h@=p = h@(\) h@zG h@Q h@p =q h@\(\ h@GzH h@333333 h@Q h@ =p h@\( h@Gz h@ h@Q h@ =p h@\( h@zG{ h@ffffff h@QR h@=p = h@(\) h@zG h@ h? =p h?zG h?Q h?\(\ h?333333 h? =p h?Gz h?Q h?\( h?ffffff h?=p = h?zG h?Q h?\( h? h?p =q h?GzH h?Q h?\( h? h? =p h?zG{ h?QR h?(\) h? h? =p h?zG h?Q h?\(\ h?333333 h? =p h?Gz h?Q h?\( h?ffffff h?=p = h?zG h?Q h?\( h? h?p =q h?GzH h?Q h?\( h? h? =p h?zG{ h?QR h?(\) h? h? =p h?zG h?Q h?zG{ h?Q h?GzH h?У =p h? h?θQ h?p =q h?(\) h?Gz h?zG{ h?ə h?QR h? =p h?\( h?zG{ h?333333 h?Q h?zG{ h?Q h? =p h?Q h?(\) h? h? =p h?zG{ h? h?Q h?Q h?zG{ h? =p h?ҏ\( h?333333 h?\( h?ffffff h?=p = h? =p h?ٙ h?\( h?QR h?׮zG h?Gz h?ۅQ h?(\) h? h?p =q h?zG{ h?zG h?=p = h?޸Q h?\(\ h? h?QR h? =p h?\( h?GzH h?ᙙ h?Q h?(\) h? =p h?Q h?333333 h?Gz h?\( h?\( h? h?\( h?=p = h?Q h?陙 h?GzH h?\( h? =p h?QR h? h?zG h?\(\ h? =p h?ffffff h?zG h?\( h?p =q h?Q h? h?Q h? =p h?Gz h?333333 h?Q h?ffffff h?zG h?\( h?Q h? =p h?p =q h?Q h? h?(\) h?zG{ h? =p h?\(\ h?zG{ h?zG h?QR h?(\) h? h?Q h?QR h?(\) h? h?GzH h?\( h?񙙙 h?p =q h?Q h? =p h?zG h?zG h?=p = h?Q h?ffffff h?\( h?\(\ h?333333 h?Q h? =p h?Gz h?\(\ h?zG{ h? =p h?333333 h? =p h?Gz h?Q h?\( h?ffffff h?=p = h?zG h?Q h? h?\( h?Q h?\( h? h?p =q h?GzH h?Q h@ h@Q h@ =p h@\( h@zG h@ h@Q h@p =q h@\(\ h@GzH h@333333 h@Q h@ =p h@\( h@Gz h@ h@Q h@ =p h@\( h@zG{ h@ffffff h@QR h@=p = h@(\) h@zG h@ h@Q h@ =p h@\( h@zG h@ h@Q h@p =q h@\(\ h@GzH h@333333 h@Q h@ =p h@\( h@Gz h@ h@Q h@ =p h@\( h@zG{ h@ffffff h@QR h@=p = h@(\) h@zG h@ h@Q h@ =p h@\( h@zG h@ h@Q h@zG h@ =p h@ h@\( h@Q h@zG{ h@p =q h@ffffff h@\(\ h@QR h@ffffff h@\( h@zG h@ h@ =p h@zG{ h@\( h@Q h@Q h@ h@Gz h@p =q h@\( h@ =p h@Q h@\(\ h@GzH h@333333 h@ =p h@Q h@=p = h@ h@zG h@333333 h@(\) h@=p = h@(\) h@QR h@ffffff h@zG{ h@Q h@zG h@ =p h@ =p h@ \( h@ Gz h@ h@ Q h@ =p h@ \( h@ zG{ h@ ffffff h@ QR h@ =p = h@ (\) h@ zG h@ h@\( h@ Q h@ =p h@ \( h@ zG h@ h@ Q h@ p =q h@ \(\ h@ GzH h@ 333333 h@ Q h@ =p h@\( h@Gz h@ h@ =p h@Q h@ Q h@ p =q h@ \(\ h@ Q h@ GzH h@ 333333 h@ GzH h@ 333333 h@ \(\ h@ Q h@ =p h@ \( h@ p =q h@ Q h@ Gz h@ h@ Q h@ =p h@ \( h@ zG{ h@ ffffff h@ QR h@ =p = h@ (\) h@ zG h@ h@ Q h@ =p h@ \( h@ h@ zG h@ h@ h@ zG h@ \( h@ =p h@Q h@ Q h@ =p h@ h@\( h@zG h@(\) h@zG h@=p = h@QR h@ffffff h@ h@zG{ h@\( h@ =p h@Q h@Q h@ h@p =q h@Gz h@\(\ h@\( h@ =p h@GzH h@Q h@333333 h@GzH h@ h@ =p h@Gz h@Q h@\( h@ h@ =p MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeVGeoIP2-Static-IP-ScoreKdescriptionBen]5GeoIP2 Static IP Score Test Database (fake GeoIP2 data, for example purposes only)Jip_versionIlanguagesBenJnode_countKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/GeoIP2-User-Count-Test.mmdb000066400000000000000000000116261507532544400321750ustar00rootroot00000000000000~H      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ9RSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~8      !"#$%&'()*+,-./01234567:;<=>?@ABCDEFG`IJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~}`      !@"#$%&'()*+,-./0123456789:;<=>? A_BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^&3`abcdefghijklm@n@op@@q@r@s@tu@@vw@@xy@@z@{|@@L`Gipv6_32Gipv6_48Gipv6_64Gipv4_24Gipv4_32  &  &  &  &                          MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeQGeoIP2-User-CountKdescriptionBen]0GeoIP2 User Count Test Database (fake GeoIP2 data, for example purposes only)Jip_versionIlanguagesBenJnode_countKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/GeoLite2-ASN-Test.mmdb000066400000000000000000000305711507532544400311770ustar00rootroot000000000000005>>>>>W > > > > >>>>>>>>>>>>>>>>>>> >!>">#>$>%>&>'>(>)>*>+>,>->.>/>0>1>2>3>4>5>6>7>8>9>:>;><>=>>>?>@>A>B>C>D>E>F>G>H>I>J>K>L>M>N>O>P>QHR>S>T>U>V>W>X>Y>Z>[>\>]>^>_>`>a>bcdezf>g>>hixj>k>l>m>n>o>p>q>r>s>t>u>v>w>N>y>>{}>|>>~>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:>>>>]>>>>>>>>>>>:>>A>>d>>>>>>>>>>>>>'>>>>=>=>{4>>>>>>>>>>>>>W>>>>>>>>>]>>>>>>>> >  c c c>c>>>>>>ccc>h>>">>>>> >!>#2$>>%&>>'(>>)>*>+,>->>./>01>3>>5L>6>7>89>>:>;<>>=>F?@>ABCD>E>G>HI>JK>>M`N]O>>PQ>>R>S>TU>V]W]X]>YZ]>[\]>]^_>  7ac>b>d>e>f 7gq 7h 7ij Sk S 7lm Sn S 7o 7p 7 S Srs 7t 7 Su Svw 7x 7y 7 Sz S 7|}~>> >>>>>>>>> ]> ]> ]> ]>> c> c 7>>>>>>>]]>]>]> >>>> 7>> ~>>>>>>>>>>     >> >>>>>>> >>>>>>>>>> >>>>>>>>>>  > > >>>> >>>>>>>>>>>>> %>>>> >>>> =>>> > > > > Z>>>>>>>>-$ >>  >>>>!>">#>>>%)&>'>(>>>*>+,> o>.7/30>1>2> o>4>>5>6 o>8<9>:>>;> o>==>?@wA[BG>CD>E>F>>>H>IJ>>K>LM>>N>OP>Q>>R>S>TUV> W> X Y Z >\>]a^>>_>` >b>>cd>>e>fg>h>>ij>>kl>>m>no>p>>qr>s>t>u>v> >x>yz{>>|>}>~>>>>>>>>>>>> >>>> >>>> >>> >>>> oG>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> >>>>>>>>>> < < <> <>>  >85> >>>>>>>>>> B B B B> B!>>"#>$>%>&>'>(.)c*c>+>,-c>cc/0>1>c2c3c4c>>67>=>9<:>;>=>=>>>>?>@A>B>>CDF>E> m m>>>>I>J>K>L>M>N>O>P>Q>R>S>T>U>V>`X>Y>Z>[>\>]>^>_>`>a>b>c>d>e>f>g>h>i>j>k>l>m>n>o>p>q>r>s>t>u>v>w>x>y>z>{>|>}>~>>>>>>>>>>>>>>>>>>>>s>>>>>>>>>>>>>>>>>>>`>>>>>>>>>>>>>>>>>> {>> > >>>>>> > > :>> S S S }>>> >`>>>@>>>>> '=  =    "  0 l  ! #/$%&'()*+,-. 0812345679:;<=>? A>B>C>D>E>FGHiIJK[LMTNOPQRSUVWXYZ \d]^_`abcefgh"jklmnopqrC 7tuv>w>x>y>z>{|}~Zg>>>>>> >>>>>>>>>>> >>>>>>>>>>>>>>> >>:>>X>>>>>>>>l>>>> :>>>>>>>>>>>>>>>>>>>>>>>>>> ~>>>>>>>0>>>N>>>N>>>>v>>>> > > >N> >>>>>>>>>>>>N>>>>>>> !"#'$%&()*+,-.2/0134>6>7>8>9>:>;<>>=>>Xautonomous_system_number;A]autonomous_system_organizationKGoogle Inc.  OTelstra Pty Ltd j j MAT&T Services G WHewlett-Packard Company  ]Massachusetts Institute of Technology Œ YAkamai Technologies, Inc.  ZCNCGROUP China169 Backbone 1 ] Orange Personal Communications Services  SDeutsche Telekom AG  RMerit Network Inc. $ ]China TieTong Telecommunications Corporation  UCogent Communications ² ]Pakistan Telecom Company Limited \ ZPT. Telekomunikasi Selular  ]University of California at San Diego & HChinanet  ]Comcast Cable Communications, Inc. z YDaimler Autonomous System  ]DoD Network Information Center  W DSITA  MKorea Telecom E QSoftbank BB Corp.  ,   ]Qwest Communications Company, LLC  ]MCI Communications Services, Inc. d/b/a Verizon Business [ ŒD  X WCox Communications Inc.  ] Cellco Partnership DBA Verizon Wireless j SAT&T Services, Inc.  # H  RBellSouth.net Inc. < ] Societe Francaise du Radiotelephone S.A q JASDASD srl 0" HFree SAS  ( YBTnet UK Regional network 1 GIP-Only  WFrance Telecom - Orange „ OSurfplanet GmbH " TBouygues Telecom ISP sN LBredband2 AB &P ] Guangdong Mobile Communication Co.Ltd. ŒG O XSURFnet, The Netherlands  KCELLCO-PART  XAOL Transit Data Network 2, PBouygues Telecom i ]NTT Communications Corporation +  ]SunGard Availability Services USA  EJPNIC J YSunrise Communications AG # JZiggo B.V.  ]TeliaSonera International Carrier & ]Taiwan Fixed Network, Telco and Network Service Provider.  SDigital United Inc. G PTelenor Norge AS  ]Cable and Wireless Worldwide plc  ]Now maintained by Cable & Wireless Worldwide D \HiNet IPv6 Service Network., & ]New Century InfoComm Tech Co., Ltd. E- ]Eastern Broadband Telecom Co.,Ltd  ]Nippon Telegraph and Telephone Corporation PF Labs _ VINTERNET MULTIFEED CO. ` (&  UKDDI KDDI CORPORATION  ]So-net Entertainment Corporation z YAkamai International B.V. J YSuddenlink Communications  XHurricane Electric, Inc.  ONOVARTIS-DMZ-US (N DS.A.  SUninet S.A. de C.V.  MVodafone GmbH  ETELE2  ]British Telecommunications plc  TPolkomtel Sp. z o.o. 3 ]Telefonica Germany GmbH & Co.OHG  [Telekomunikacja Polska S.A.  UTelecom Italia S.p.a.  KOrange S.A.  ZSwisscom (Switzerland) Ltd  LTelenet N.V. 1 QJazz Telecom S.A.  ( zf ]Kabel Deutschland Vertrieb und Service GmbH # LEWE TEL GmbH   TTELEFONICA DE ESPANA 8 UBelgacom regional ASN  ]Liberty Global Operations B.V. p VKPN Internet Solutions "! TKoninklijke KPN N.V. S PCableuropa - ONO a JLINKdotNET  BIS ( JMWEB-10474MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeLGeoLite2-ASNKdescriptionBen]+GeoLite2 ASN Test Database (fake GeoIP2 data, for example purposes only)Jip_versionIlanguagesBenJnode_count>Krecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/GeoLite2-City-Test.mmdb000066400000000000000000000505111507532544400314620ustar00rootroot00000000000000      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ|RSTUVWXYZ[\]^_`abcde~fghijklmnopqrstuvwxyz{|}   :  b b 3{bC-&      !"#$%'()*+,./0126345789:;<=>?@ABDEFRGHIJKLMNOPQ5STUVWXYZ[\]^_`acdefghijklmnopqrstuvwxyz,}~`\[P`dd>     d4%d>" !d#$&-'*()+,.1/0d23d5A6=7:89;<>?@dBICFDEbGHJMKLNOQRSTUVWXYZ`]^_`abcdefghijk{lmnoptqrsuxvwyzG|}~1_K6Gx1K6KdxGKGxK3KGC$     1 1!  "# %4&-'*()K+,x.1/0!235<6978K:;=@>?ABDcETFMGJHIKL NQOPRSU\VYWX"XZ[x]`^_1abdselfighjkmpnoqr#t{uxvwyz |}~x G#$xx#!%"KKG1K#G&GG&'K    H )K")  !#&$%'(1*9+2,/-.01x364578:A;><=?@xBECDFGGIhJYKRLOMNGPQSVTUdWX)Za[^\]_` becdKfg%"ixjqknlmoprust#vw1yz}{|~ _x&xKGKGKx*xx+####    1 O0!#K ")#&$%'(*-+,x./x1@293645%"78 :=;<K>?AHBECDKFGxILJKMNPoQ`RYSVTU1WX,Z][\^_xahbecdKfgiljk,mn!pqxrust#vwxy|z{}~x-]K.DcityJgeoname_id(EEnamesBenGBoxfordIcontinentDcodeBEU _r, BdeFEuropaBenFEuropeBes GBfr QBjaOヨーロッパEpt-BR GBruLЕвропаEzh-CNF欧洲Gcountry (5Hiso_codeBGB BdeWVereinigtes KönigreichBenNUnited KingdomBesKReino UnidoBfrKRoyaume-UniBjaLイギリス u Bru\Великобритания F英国HlocationOaccuracy_radiusdHlatitudeh@IIlongitudehItime_zoneMEurope/LondonFpostal 3COX1Rregistered_country . Tis_in_european_union BFR BdeJFrankreichBenFFranceBesGFranciaBfr!BjaUフランス共和国 uGFrançaBruNФранция F法国Lsubdivisions _ CENG BenGEnglandBesJInglaterraBfrJAngleterre u"s 2a CWBK BenNWest BerkshireBru]Западный Беркшир L西伯克郡 ( 3BAS _r+ BdeEAsienBenDAsiaBes#BfrDAsieBjaIアジア uEÁsiaBruHАзия F亚洲  BBT BdeFBhutanBen#SBesFButánBfr#SBjaRブータン王国 uFButãoBruJБутан F不丹!@!J!\h@;!nh@V!LAsia/Thimphu!  /U!! BRO BdeIRumänienBenGRomaniaBesHRumaníaBfrHRoumanieBjaOルーマニア uHRomêniaBruNРумыния L罗马尼亚FtraitsRis_anonymous_proxy!  (W BdeFLondonBen$BesGLondresBfr$BjaLロンドン u$BruLЛондон ( 2 !@!Jd!\h@IN;6!nhfA!!! _e BUS BdeCUSABenMUnited StatesBesNEstados UnidosBfrKÉtats-UnisBjaUアメリカ合衆国 u%BruFСША F美国"F"U $u ( 2 !@!J!\$!n$!!!$"F%g $u ( 2 !@!J !\$!n$!!!$"F%g  )j BdeJLinköpingBen%Bfr%BjaXリンシェーピング I林雪平 ( 2 (!! BSE BdeHSchwedenBenFSwedenBesFSueciaBfrFSuèdeBjaXスウェーデン王国 uGSuéciaBruLШвеция F瑞典!@!JL!\h@M5Vl!!nh@/;6!PEurope/Stockholm! ,T!! BDE BdeKDeutschlandBenGGermanyBesHAlemaniaBfrIAllemagneBjaXドイツ連邦共和国 uHAlemanhaBruPГермания F德国"F ( AE BenUÖstergötland CountyBfrWComté d'Östergötland   BdeKChángchūnBenIChangchunBfr'BjaI長春市BruNЧанчунь F长春 ("  BCN BdeEChinaBen'Bes'BfrEChineBjaF中国 u'BruJКитай (!@!Jd!\h@E =q!nh@_TTɆ!KAsia/Harbin!'"F  B22 BenKJilin Sheng F吉林 (" 8 BPH BdeKPhilippinenBenKPhilippinesBesIFilipinasBfr(BjaXフィリピン共和国 u(BruRФилиппины I菲律宾!@!Jy!\h@*!nh@^!KAsia/Manila! 3E34021!(Srepresented_country _e BUS $DtypeHmilitary  X$ BenFMiltonBruNМильтон ( 3BNA _r- BdeKNordamerikaBenMNorth AmericaBesRAmérica del NorteBfrQAmérique du NordBjaO北アメリカ uQAmérica do NorteBru]Северная Америка I北美洲 $!@!J!\h@G*0!nh^'RT`Jmetro_code3!SAmerica/Los_Angeles! 3E98354! "F X_ BWA BenJWashingtonBes(BfrSÉtat de WashingtonBjaRワシントン州BruRВашингтон L华盛顿州 (" e BJP BdeEJapanBen(GBesFJapónBfrEJaponBjaF日本 uFJapãoBruLЯпония (i!@!Jd!\h@A׹`H!nh@axP3:!JAsia/Tokyo!(5 (" A BKR BdeNRepublik KoreaBenKSouth KoreaBesTCorea, República deBfrMCorée du SudBjaL大韓民国 uVCoréia, República daBruUЮжная Корея F韩国!@!Jd!\h@B!nh@_!JAsia/Seoul!( (" t BTW BdeFTaiwanBen(BesGTaiwánBfrGTaïwanBjaF台湾 u(BruNТайвань (!@!Jd!\h@8!nh@^@!KAsia/Taipei!( ("  BCN Bde'BenZPeople's Republic of ChinaBesXRepública Popular ChinaBfr( Bja( u'Bru($ (!@!Jd!\h@A!nh@Z@!(0 (" R BHK BdeHHongkongBenIHong KongBes(Bfr(BjaF香港 u(BruNГонконг (!@!Jd!\h@6@!nh@\[!NAsia/Hong_Kong!( ( 2 / BNO BdeHNorwegenBenFNorwayBesGNoruegaBfrHNorvègeBjaUノルウェー王国 u(~BruPНорвегия F挪威!@!Jd!\h@O!nh@$!KEurope/Oslo!(V (" ~ BIL BdeFIsraelBen(Bes(BfrGIsraëlBjaRイスラエル国 u(BruNИзраиль I以色列!@!Jd!\h@?!nh@A`!NAsia/Jerusalem!( ( 2 !!@!Jd!\h@G!nh@!LEurope/Paris!! ( 2 ( BCH BdeGSchweizBenKSwitzerlandBesESuizaBfrFSuisseBjaOスイス連邦 uGSuíçaBruRШвейцария F瑞士!@!Jd!\h@G>-b9!nh@ Ne!MEurope/Zurich!( ( 2 &!@!Jd!\h@O!nh@.!&!& (" m BBH BdeGBahrainBen(BesHBahréinBfrHBahreïnBjaOバーレーン u(BruNБахрейн F巴林!@!Jd!\h@:!nh@I@!LAsia/Bahrain!( ( 2 Z BRU BdeHRusslandBenFRussiaBesERusiaBfrFRussieBjaIロシア uGRússiaBruLРоссия I俄罗斯!@!Jd!\h@N!nh@Y!( b ( 2  /P!! BPL BdeEPolenBenFPolandBesGPoloniaBfrGPologneBjaXポーランド共和国 uHPolôniaBruLПольша F波兰!@!Jd!\h@J!nh@4!MEurope/Warsaw!( ( 2 &!@!Jd!\h@I!nh@%!MEurope/Berlin!& ( 2 0s!! BIT BdeGItalienBenEItalyBesFItaliaBfrFItalieBjaUイタリア共和国 uGItáliaBruLИталия I意大利!@!Jd!\h@EjcI!nh@):э&!KEurope/Rome!( ( 2  -!! BFI BdeHFinnlandBenGFinlandBesIFinlandiaBfrHFinlandeBja[フィンランド共和国 uJFinlândiaBruRФинляндия F芬兰!@!Jd!\h@P!nh@:!OEurope/Helsinki!( ( 2  @ BBY BdeMWeißrusslandBenGBelarusBesKBielorrusiaBfrLBiélorussieBjaXベラルーシ共和国 uMBielo-RússiaBruPБеларусь L白俄罗斯!@!Jd!\h@J!nh@<!LEurope/Minsk!( _ ( 2 .!! BCZ BdeUTschechische RepublikBenNCzech RepublicBesPRepública ChecaBfrITchéquieBjaRチェコ共和国 u( qBru]Чешская Республика O捷克共和国!@!Jd!\h@H!nh@.!MEurope/Prague!( 0 ("  BIR BdeZIran (Islamische Republik)BenDIranBes\Irán (República Islámica)Bfr]Iran (République islamique de)Bja]イラン・イスラム共和国 u\República Islâmica do IrãBruHИран X伊朗伊斯兰共和国!@!Jd!\h@@!nh@J!KAsia/Tehran!( ( 2  g BUA BdeGUkraineBen(KBesGUcraniaBfr(KBjaXウクライナ共和国 uHUcrâniaBruNУкраина I乌克兰!@!Jd!\h@H!nh@@!(9 ( 2 !@!Jd!\h@Ka7!nhtr!!! ( 2  !! BHU BdeFUngarnBenGHungaryBesHHungríaBfrGHongrieBjaXハンガリー共和国 uGHungriaBruNВенгрия I匈牙利!@!Jd!\h@G!nh@4!OEurope/Budapest!( ( 2!@!Jd!\h@HXq`l !nh@"GX:S!LEurope/Vaduz ( 2 &O!! BES BdeGSpanienBenESpainBesGEspañaBfrGEspagneBjaLスペイン uGEspanhaBruNИспания I西班牙!@!Jd!\h@D!nh!( ( 2  .!! BBG BdeIBulgarienBenHBulgariaBes(BfrHBulgarieBjaXブルガリア共和国 uIBulgáriaBruPБолгария L保加利亚!@!Jd!\h@E!nh@9!LEurope/Sofia!( ( 2 #!@!Jd!\h@G!nh@9!PEurope/Bucharest!# ( 2 *¹!! BBE BdeGBelgienBenGBelgiumBesHBélgicaBfrHBelgiqueBjaRベルギー王国 u(BruNБельгия I比利时!@!Jd!\h@IjcI!nh@!OEurope/Brussels!( (" + BTR BdeGTürkeiBenFTurkeyBesHTurquíaBfrGTurquieBjaRトルコ共和国 uGTurquiaBruLТурция I土耳其!@!Jd!\h@C!nh@AtU!OEurope/Istanbul!(F ( 2 *s!! BAT BdeKÖsterreichBenGAustriaBes(BfrHAutricheBja[オーストリア共和国 uHÁustriaBruNАвстрия I奥地利!@!Jd!\h@GcI!nh@*:э&!MEurope/Vienna!( ( 2  BAL BdeHAlbanienBenGAlbaniaBes(BfrGAlbanieBjaXアルバニア共和国 uHAlbâniaBruNАлбания O阿尔巴尼亚!@!Jd!\h@D!nh@4!MEurope/Tirane!( (" & BLB BdeGLibanonBenGLebanonBesGLíbanoBfrELibanBjaUレバノン共和国 u(BruJЛиван I黎巴嫩!@!Jd!\h@@ꪎcI!nh@AꪎcI!KAsia/Beirut!(s ( 2 )!! BNL BdeKNiederlandeBenKNetherlandsBesGHolandaBfrHPays-BasBjaRオランダ王国 uNPaíses BaixosBruTНидерланды F荷兰!@!Jd!\h@J@!nh@!PEurope/Amsterdam!( (" [ BKW BdeFKuwaitBen(Bes(BfrGKoweïtBjaOクウェート u(BruLКувейт I科威特!@!Jd!\h@=!nh@G!KAsia/Kuwait!( ("  BSA BdeMSaudi-ArabienBenLSaudi ArabiaBesNArabia SauditaBfrOArabie saouditeBja[サウジアラビア王国 uOArábia SauditaBru]Саудовская Аравия O沙特阿拉伯!@!Jd!\h@9!nh@F!KAsia/Riyadh!( ( 2 _L BRS BdeGSerbienBenFSerbiaBes(BfrFSerbieBjaLセルビア uGSérviaBruLСербия L塞尔维亚!@!Jd!\h@Fh^)!nh@4u?h!OEurope/Belgrade!(w ("  BJO BdeIJordanienBen[Hashemite Kingdom of JordanBesHJordaniaBfrHJordanieBja]ヨルダン・ハシミテ王国 uIJordâniaBruPИордания F约旦!@!Jd!\h@?!nh@B!JAsia/Amman!( ( 3BAF _r* BdeFAfrikaBenFAfricaBesGÁfricaBfrGAfriqueBjaLアフリカ u(BruLАфрика F非洲 ! BLY Bde]Libysch-Arabische DschamahirijaBenELibyaBesXLibia, República ÁrabeBfrELibyeBja] 社会主義人民リビア・アラブ国 uXLíbia Árabe JamahiriyaBruJЛивия [阿拉伯利比亚民众国!@!Jd!\h@<!nh@1!NAfrica/Tripoli!(\ ( 2 -8!! BIE BdeFIrlandBenGIrelandBesURepública de IrlandaBfrGIrlandeBjaRアイルランド uGIrlandaBruPИрландия I爱尔兰!@!Jd!\h@J!nh !MEurope/Dublin!(m (" l BAZ BdeMAserbaidschanBenJAzerbaijanBesKAzerbaiyánBfrLAzerbaïdjanBja]アゼルバイジャン共和国 uKAzerbaijãoBruVАзербайджан L阿塞拜疆!@!Jd!\h@D@!nh@G!IAsia/Baku!(2 (" n BAE Bde\Vereinigte Arabische EmirateBenTUnited Arab EmiratesBesWEmiratos Árabes UnidosBfrTÉmirats Arabes UnisBjaXアラブ首長国連邦 uWEmirados Árabes UnidosBru]Объединенные Арабские Эмираты X阿拉伯联合酋长国!@!Jd!\h@8!nh@K!JAsia/Dubai!( ("  BAM BdeHArmenienBenGArmeniaBes(mBfrHArménieBjaXアルメニア共和国 uHArmêniaBruNАрмения L亚美尼亚!@!Jd!\h@D!nh@F!LAsia/Yerevan!(O ( 2 (8!! BDK BdeIDänemarkBenGDenmarkBesIDinamarcaBfrHDanemarkBjaUデンマーク王国 u(5BruJДания F丹麦!@!Jd!\h@L!nh@$!QEurope/Copenhagen!( ( 2 .k BIM BdeIInsel ManBenKIsle of ManBesKIsla de ManBfrKÎle de ManBjaIマン島 uKIlha de ManBruMМэн, о-в F曼岛!@!Jd!\h@K !nh!REurope/Isle_of_Man!( ( 2 $B BGI BdeIGibraltarBen( Bes( Bfr( BjaRジブラルタル u( BruRГибралтар!@!Jd!\h@Bɰ!nhffffff!PEurope/Gibraltar!( yMaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeMGeoLite2-CityKdescriptionBen],GeoLite2 City Test Database (fake GeoIP2 data, for example purposes only)Jip_versionIlanguagesBenJnode_countKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/GeoLite2-Country-Test.mmdb000066400000000000000000000430401507532544400322140ustar00rootroot00000000000000      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde~fghijklmnopqrstuvwxyz{|} & & & & 3 3 B     uV@9+ !"#$*%&'(),-./012345678:;<=>?ABCDEIFGHJKLMNOPQRSTUWXYeZ[\]^_`abcd fghijklmnopqrstvwxyz{|}~  `x`  <     [ [ -# !" $*%' B& B() B B+, .5/201 34 6978 [:; =\>M?F@CAB [DE GJHI [KL NUORPQ ST VYWX [Z[ []i^e_b`a cd fgh [jqknlmqop rust vw yz{|}~`Z+`m[vufu`v      $! "#%(&'u)*,k-L.=/60312457:89;<>E?B@A`CDFIGH2JK2M\NUORPQSTVYWXZ[]d^a_`bcehfgijlm|nuorpqst2vywxz{f}~H`Zu2u3S[S_`S )    $! "#%,&)'(P*+-0./212[4p5Q6B7>8;9:<=?@ACJDGEFHIKNLMZOP`RaSZTWUVXY[^\][_`[bicfdeghjmklnoqrsztwuvxy{~|}02_fS`27mffu[      S(!S S"%#$&')0*-+,./[1423`56[8w9X:I;B<?=>@ASCFDEGH[JQKNLMuOPRUSTVWYhZa[^\]__`2becdfg[ipjmklnoqtrsuv[xyz{~|}`!!S"  IcontinentDcodeBEUJgeoname_id_r,EnamesBdeFEuropaBenFEuropeBes -Bfr 7BjaOヨーロッパEpt-BR -BruLЕвропаEzh-CNF欧洲Gcountry (5Hiso_codeBGB #BdeWVereinigtes KönigreichBenNUnited KingdomBesKReino UnidoBfrKRoyaume-UniBjaLイギリス [ Bru\Великобритания sF英国Rregistered_country . Tis_in_european_union BFR #BdeJFrankreichBenFFranceBesGFranciaBfr!pBjaUフランス共和国 [GFrançaBruNФранция sF法国  BNA _r- #BdeKNordamerikaBenMNorth AmericaBesRAmérica del NorteBfrQAmérique du NordBjaO北アメリカ [QAmérica do NorteBru]Северная Америка sI北美洲 _e BUS #BdeCUSABenMUnited StatesBesNEstados UnidosBfrKÉtats-UnisBjaUアメリカ合衆国 ["BruFСША sF美国!&"{  BAS _r+ #BdeEAsienBenDAsiaBes#BfrDAsieBjaIアジア [EÁsiaBruHАзия sF亚洲  BBT #BdeFBhutanBen#eBesFButánBfr#eBjaRブータン王国 [FButãoBruJБутан sF不丹!&  /U!@!U BRO #BdeIRumänienBenGRomaniaBesHRumaníaBfrHRoumanieBjaOルーマニア [HRomêniaBruNРумыния sL罗马尼亚FtraitsRis_anonymous_proxy!U  !&"{  (!@!U BSE #BdeHSchwedenBenFSwedenBesFSueciaBfrFSuèdeBjaXスウェーデン王国 [GSuéciaBruLШвеция sF瑞典!& ,T!@!U BDE #BdeKDeutschlandBenGGermanyBesHAlemaniaBfrIAllemagneBjaXドイツ連邦共和国 [HAlemanhaBruPГермания sF德国 "  BCN #BdeEChinaBenZPeople's Republic of ChinaBesXRepública Popular ChinaBfrEChineBjaF中国 [%BruJКитай s%!&%z " 8 BPH #BdeKPhilippinenBenKPhilippinesBesIFilipinasBfr&!BjaXフィリピン共和国 [&0BruRФилиппины sI菲律宾!&&Srepresented_country _e BUS #"DtypeHmilitary ! "{!&  $B BGI #BdeIGibraltarBen&Bes&Bfr&BjaRジブラルタル [&BruRГибралтар!&& " e BJP #BdeEJapanBen'CBesFJapónBfrEJaponBjaF日本 [FJapãoBruLЯпония s'd!&'1 " A BKR #BdeNRepublik KoreaBenKSouth KoreaBesTCorea, República deBfrMCorée du SudBjaL大韓民国 [VCoréia, República daBruUЮжная Корея sF韩国!&' " t BTW #BdeFTaiwanBen(TBesGTaiwánBfrGTaïwanBjaF台湾 [(TBruNТайвань s(z!&(B " R BHK #BdeHHongkongBenIHong KongBes(Bfr(BjaF香港 [(BruNГонконг s(!&(  / BNO #BdeHNorwegenBenFNorwayBesGNoruegaBfrHNorvègeBjaUノルウェー王国 [(7BruPНорвегия sF挪威!&( " ~ BIL #BdeFIsraelBen(Bes(BfrGIsraëlBjaRイスラエル国 [(BruNИзраиль sI以色列!&(  !9!&!9  ( BCH #BdeGSchweizBenKSwitzerlandBesESuizaBfrFSuisseBjaOスイス連邦 [GSuíçaBruRШвейцария sF瑞士!&(  $k!&$k " m BBH #BdeGBahrainBen(BesHBahréinBfrHBahreïnBjaOバーレーン [(BruNБахрейн sF巴林!&(  Z BRU #BdeHRusslandBenFRussiaBesERusiaBfrFRussieBjaIロシア [GRússiaBruLРоссия sI俄罗斯!&(   /P!@!U BPL #BdeEPolenBenFPolandBesGPoloniaBfrGPologneBjaXポーランド共和国 [HPolôniaBruLПольша sF波兰!&(  $!&$  0s!@!U BIT #BdeGItalienBenEItalyBesFItaliaBfrFItalieBjaUイタリア共和国 [GItáliaBruLИталия sI意大利!&((   -!@!U BFI #BdeHFinnlandBenGFinlandBesIFinlandiaBfrHFinlandeBja[フィンランド共和国 [JFinlândiaBruRФинляндия sF芬兰!&(   @ BBY #BdeMWeißrusslandBenGBelarusBesKBielorrusiaBfrLBiélorussieBjaXベラルーシ共和国 [MBielo-RússiaBruPБеларусь sL白俄罗斯!&(H  .!@!U BCZ #BdeUTschechische RepublikBenNCzech RepublicBesPRepública ChecaBfrITchéquieBjaRチェコ共和国 [(.Bru]Чешская Республика sO捷克共和国!&( "  BIR #BdeZIran (Islamische Republik)BenDIranBes\Irán (República Islámica)Bfr]Iran (République islamique de)Bja]イラン・イスラム共和国 [\República Islâmica do IrãBruHИран sX伊朗伊斯兰共和国!&(   g BUA #BdeGUkraineBen(BesGUcraniaBfr(BjaXウクライナ共和国 [HUcrâniaBruNУкраина sI乌克兰!&(  !&   !@!U BHU #BdeFUngarnBenGHungaryBesHHungríaBfrGHongrieBjaXハンガリー共和国 [GHungriaBruNВенгрия sI匈牙利!&(-   &O!@!U BES #BdeGSpanienBenESpainBesGEspañaBfrGEspagneBjaLスペイン [GEspanhaBruNИспания sI西班牙!&(   .!@!U BBG #BdeIBulgarienBenHBulgariaBes( eBfrHBulgarieBjaXブルガリア共和国 [IBulgáriaBruPБолгария sL保加利亚!&( B  #!&#  *¹!@!U BBE #BdeGBelgienBenGBelgiumBesHBélgicaBfrHBelgiqueBjaRベルギー王国 [( BruNБельгия sI比利时!&( " + BTR #BdeGTürkeiBenFTurkeyBesHTurquíaBfrGTurquieBjaRトルコ共和国 [GTurquiaBruLТурция sI土耳其!&( j  *s!@!U BAT #BdeKÖsterreichBenGAustriaBes( BfrHAutricheBja[オーストリア共和国 [HÁustriaBruNАвстрия sI奥地利!&(   BAL #BdeHAlbanienBenGAlbaniaBes( BfrGAlbanieBjaXアルバニア共和国 [HAlbâniaBruNАлбания sO阿尔巴尼亚!&( " & BLB #BdeGLibanonBenGLebanonBesGLíbanoBfrELibanBjaUレバノン共和国 [( 6BruJЛиван sI黎巴嫩!&(   )!@!U BNL #BdeKNiederlandeBenKNetherlandsBesGHolandaBfrHPays-BasBjaRオランダ王国 [NPaíses BaixosBruTНидерланды sF荷兰!&( " [ BKW #BdeFKuwaitBen( 9Bes( 9BfrGKoweïtBjaOクウェート [( 9BruLКувейт sI科威特!&( ' "  BSA #BdeMSaudi-ArabienBenLSaudi ArabiaBesNArabia SauditaBfrOArabie saouditeBja[サウジアラビア王国 [OArábia SauditaBru]Саудовская Аравия sO沙特阿拉伯!&(  _L BRS #BdeGSerbienBenFSerbiaBes(~BfrFSerbieBjaLセルビア [GSérviaBruLСербия sL塞尔维亚!&(a "  BJO #BdeIJordanienBen[Hashemite Kingdom of JordanBesHJordaniaBfrHJordanieBja]ヨルダン・ハシミテ王国 [IJordâniaBruPИордания sF约旦!&(  BAF _r* #BdeFAfrikaBenFAfricaBesGÁfricaBfrGAfriqueBjaLアフリカ [(BruLАфрика sF非洲 ! BLY #Bde]Libysch-Arabische DschamahirijaBenELibyaBesXLibia, República ÁrabeBfrELibyeBja] 社会主義人民リビア・アラブ国 [XLíbia Árabe JamahiriyaBruJЛивия s[阿拉伯利比亚民众国!&(  -8!@!U BIE #BdeFIrlandBenGIrelandBesURepública de IrlandaBfrGIrlandeBjaRアイルランド [GIrlandaBruPИрландия sI爱尔兰!&( " l BAZ #BdeMAserbaidschanBenJAzerbaijanBesKAzerbaiyánBfrLAzerbaïdjanBja]アゼルバイジャン共和国 [KAzerbaijãoBruVАзербайджан sL阿塞拜疆!&(h " n BAE #Bde\Vereinigte Arabische EmirateBenTUnited Arab EmiratesBesWEmiratos Árabes UnidosBfrTÉmirats Arabes UnisBjaXアラブ首長国連邦 [WEmirados Árabes UnidosBru]Объединенные Арабские Эмираты sX阿拉伯联合酋长国!&( "  BAM #BdeHArmenienBenGArmeniaBes(PBfrHArménieBjaXアルメニア共和国 [HArmêniaBruNАрмения sL亚美尼亚!&(2  (8!@!U BDK #BdeIDänemarkBenGDenmarkBesIDinamarcaBfrHDanemarkBjaUデンマーク王国 [(BruJДания sF丹麦!&(  .k BIM #BdeIInsel ManBenKIsle of ManBesKIsla de ManBfrKÎle de ManBjaIマン島 [KIlha de ManBruMМэн, о-в sF曼岛!&(CMaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typePGeoLite2-CountryKdescriptionBen]/GeoLite2 Country Test Database (fake GeoIP2 data, for example purposes only)Jip_versionIlanguagesBenJnode_countKrecord_sizeMaxMind-DB-no-ipv4-search-tree.mmdb000066400000000000000000000011521507532544400334550ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data@@@@@@@@ @ @ @ @ @@@@@@@@@@@@@@@@@@@ @!@"@#@$@%@&@'@(@)@*@+@,@-@.@/@0@1@2@3@4@5@6@7@8@9@:@;@<@=@>@?@P@F::0/64MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_type]MaxMind DB No IPv4 Search TreeKdescriptionBen \Jip_versionIlanguagesBenJnode_count@Krecord_sizeMaxMind-DB-string-value-entries.mmdb000066400000000000000000000024751507532544400340610ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data4(%  !"#$&')*0+,-./1235I6789C:;<=>?@ABDEFGHJKLMzNOPsQeRSTUVWXYZ[\]^d_`abcfghijklmnopqrtuvwxy{|}~K1.1.1.16/28J1.1.1.8/29J1.1.1.4/30J1.1.1.2/31J1.1.1.1/32K1.1.1.32/32MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_type]MaxMind DB String Value EntriesKdescriptionBen] MaxMind DB String Value Entries (no maps or arrays as values)Jip_versionIlanguagesBenJnode_countKrecord_sizeMaxMind-DB-test-broken-pointers-24.mmdb000066400000000000000000000024111507532544400343010ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data4(%  !"#$&')*0+,-./1235I6789C:;<=>?@ABDEFGHJKLMzNOPsQeRSTUVWXYZ[\]^d_`abcfghijklmnopqrtuvwxy{|}~0:@BipG1.1.1.8BipG1.1.1.4BipG1.1.1.2BipG1.1.1.1BipH1.1.1.32MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeDTestKdescriptionBenMTest DatabaseBzhUTest Database ChineseJip_versionIlanguagesBenBzhJnode_countKrecord_sizeMaxMind-DB-test-broken-search-tree-24.mmdb000066400000000000000000000024221507532544400346420ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data(%  !"#$&')*0+,-./1235I6789C:;<=>?@ABDEFGHJKLMzNOPsQeRSTUVWXYZ[\]^d_`abcfghijklmnopqrtuvwxy{|}~BipH1.1.1.16BipG1.1.1.8BipG1.1.1.4BipG1.1.1.2BipG1.1.1.1BipH1.1.1.32MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeDTestKdescriptionBenMTest DatabaseBzhUTest Database ChineseJip_versionIlanguagesBenBzhJnode_countKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/MaxMind-DB-test-decoder.mmdb000066400000000000000000000061671507532544400324350ustar00rootroot00000000000000kM      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~----`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL-NOPQRSTUVWXYjZ[\]^_`abcdefghi``lmnopqrstuvwxyz{|}~-EarrayGbooleanEbytesFdoublehEfloatEint32CmapGuint128Fuint16Fuint32Fuint64Kutf8_string@   * h@Eg?[ *? 6CmapDmapXFarrayX Lutf8_stringXEhello C Md U ] fRunicode! ☯ - ♫ h * 6 C M U ]MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeWMaxMind DB Decoder TestKdescriptionBen])MaxMind DB Decoder Test database - contains every MaxMind DB data typeJip_versionIlanguagesBenJnode_countKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/MaxMind-DB-test-ipv4-24.mmdb000066400000000000000000000024221507532544400321230ustar00rootroot000000000000004(%  !"#$&')*0+,-./1235I6789C:;<=>?@ABDEFGHJKLMzNOPsQeRSTUVWXYZ[\]^d_`abcfghijklmnopqrtuvwxy{|}~BipH1.1.1.16BipG1.1.1.8BipG1.1.1.4BipG1.1.1.2BipG1.1.1.1BipH1.1.1.32MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeDTestKdescriptionBenMTest DatabaseBzhUTest Database ChineseJip_versionIlanguagesBenBzhJnode_countKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/MaxMind-DB-test-ipv4-28.mmdb000066400000000000000000000026661507532544400321410ustar00rootroot000000000000004(%  !"#$&')*0+,-./1235I6789C:;<=>?@ABDEFGHJKLMzNOPsQeRSTUVWXYZ[\]^d_`abcfghijklmnopqrtuvwxy{|}~BipH1.1.1.16BipG1.1.1.8BipG1.1.1.4BipG1.1.1.2BipG1.1.1.1BipH1.1.1.32MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeDTestKdescriptionBenMTest DatabaseBzhUTest Database ChineseJip_versionIlanguagesBenBzhJnode_countKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/MaxMind-DB-test-ipv4-32.mmdb000066400000000000000000000031321507532544400321210ustar00rootroot000000000000004(%  !"#$&')*0+,-./1235I6789C:;<=>?@ABDEFGHJKLMzNOPsQeRSTUVWXYZ[\]^d_`abcfghijklmnopqrtuvwxy{|}~BipH1.1.1.16BipG1.1.1.8BipG1.1.1.4BipG1.1.1.2BipG1.1.1.1BipH1.1.1.32MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeDTestKdescriptionBenMTest DatabaseBzhUTest Database ChineseJip_versionIlanguagesBenBzhJnode_countKrecord_size golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/MaxMind-DB-test-ipv6-24.mmdb000066400000000000000000000053661507532544400321370ustar00rootroot00000000000000n6      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ'RSTUVWXYZ[\]^_`awbkcdehfgijlmsnopqrtuvxyz{|}~      !"#$%&()*+,-./012345`789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmopqrstuvwxyz{|}~``BipM::1:ffff:ffffBipG::2:0:0BipH::2:0:40BipH::2:0:50BipH::2:0:58MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeDTestKdescriptionBenMTest DatabaseBzhUTest Database ChineseJip_versionIlanguagesBenBzhJnode_countKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/MaxMind-DB-test-ipv6-28.mmdb000066400000000000000000000062261507532544400321370ustar00rootroot00000000000000n6      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ'RSTUVWXYZ[\]^_`awbkcdehfgijlmsnopqrtuvxyz{|}~      !"#$%&()*+,-./012345`789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmopqrstuvwxyz{|}~``BipM::1:ffff:ffffBipG::2:0:0BipH::2:0:40BipH::2:0:50BipH::2:0:58MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeDTestKdescriptionBenMTest DatabaseBzhUTest Database ChineseJip_versionIlanguagesBenBzhJnode_countKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/MaxMind-DB-test-ipv6-32.mmdb000066400000000000000000000070661507532544400321350ustar00rootroot00000000000000n6      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ'RSTUVWXYZ[\]^_`awbkcdehfgijlmsnopqrtuvxyz{|}~      !"#$%&()*+,-./012345`789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmopqrstuvwxyz{|}~``BipM::1:ffff:ffffBipG::2:0:0BipH::2:0:40BipH::2:0:50BipH::2:0:58MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeDTestKdescriptionBenMTest DatabaseBzhUTest Database ChineseJip_versionIlanguagesBenBzhJnode_countKrecord_size MaxMind-DB-test-metadata-pointers.mmdb000066400000000000000000000043221507532544400343610ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-dataG````` ` ` ` ` ``````````````````` `!`"`#`$`%`&`'`(`)`*`+`,`-`.`/`0`1`2`3`4`5`6`7`8`9`:`;`<`=`>`?`@`A`B`C`D`E`F`G`H`I`J`K`L`M`N`O`P`Q`R`S`T`U`V`W`X`Y`Z`[`\`]`^`_```awbkc`d`ehf`g`P`i``jP``lmsn``op`q`r``P`t`u`v`Px`yz``{|}``~```````P```````P````````````````````P`P```````````````P``````P`````````P````````````P````````````````````PPP````````````````````````````````` ` ` ` ` ``````````````````P` `!`"`#`$`%`&`'`(`)`*`+``,-`.`/`0`1<2`3`4P5P6P7P8P9P:P;PPP`=>``?`@A``B`C`DE`F`P``H`I`J`K`LPMNP`OP`MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_type\Lots of pointers in metadataKdescriptionBen \Bes \Bzh \Jip_versionIlanguagesBenBesBzhJnode_countPKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/MaxMind-DB-test-mixed-24.mmdb000066400000000000000000000057721507532544400323620ustar00rootroot00000000000000S      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQDRSTUVWXYZ[\]^_$`abcdefghijklmnopqrstuvwxyz{|}~      !"##%&'()*+,-./0123456789:;<=>5?@AANBC[EFGHIJKLMNOPQR`TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~``BipJ::1.1.1.16BipI::1.1.1.8BipI::1.1.1.4BipI::1.1.1.2BipI::1.1.1.1BipJ::1.1.1.32BipM::1:ffff:ffffBipG::2:0:0BipH::2:0:40BipH::2:0:50BipH::2:0:58MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeDTestKdescriptionBenMTest DatabaseBzhUTest Database ChineseJip_versionIlanguagesBenBzhJnode_countKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/MaxMind-DB-test-mixed-28.mmdb000066400000000000000000000066671507532544400323720ustar00rootroot00000000000000S      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQDRSTUVWXYZ[\]^_$`abcdefghijklmnopqrstuvwxyz{|}~      !"##%&'()*+,-./0123456789:;<=>5?@AANBC[EFGHIJKLMNOPQR`TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~``BipJ::1.1.1.16BipI::1.1.1.8BipI::1.1.1.4BipI::1.1.1.2BipI::1.1.1.1BipJ::1.1.1.32BipM::1:ffff:ffffBipG::2:0:0BipH::2:0:40BipH::2:0:50BipH::2:0:58MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeDTestKdescriptionBenMTest DatabaseBzhUTest Database ChineseJip_versionIlanguagesBenBzhJnode_countKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/MaxMind-DB-test-mixed-32.mmdb000066400000000000000000000075641507532544400323620ustar00rootroot00000000000000S      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQDRSTUVWXYZ[\]^_$`abcdefghijklmnopqrstuvwxyz{|}~      !"##%&'()*+,-./0123456789:;<=>5?@AANBC[EFGHIJKLMNOPQR`TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~``BipJ::1.1.1.16BipI::1.1.1.8BipI::1.1.1.4BipI::1.1.1.2BipI::1.1.1.1BipJ::1.1.1.32BipM::1:ffff:ffffBipG::2:0:0BipH::2:0:40BipH::2:0:50BipH::2:0:58MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeDTestKdescriptionBenMTest DatabaseBzhUTest Database ChineseJip_versionIlanguagesBenBzhJnode_countKrecord_size golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/MaxMind-DB-test-nested.mmdb000066400000000000000000000073321507532544400323050ustar00rootroot00000000000000=a===) = = = = =================== =!="=#=$=%=&='=(=)=*=+=,=-=.=/=0=1=2=3=4=5=6=7=8=9=:=;=<===>=?=@=A=B=C=D=E=F=G=H=I=J=K=L=M=N=O=P=QR=S=T=U=V=W=X=Y=Z=[=\=]=^=_=`=abc=d=efgx=hi=j=k=l=m=n=o==pq=r=s=t=u=v=w==MyMz={=|=}=~===M===========================M===============================================================================================================  = = = ====================== =!="=#=$=%=&='=(=`*=+=,=-=.=/=0=1=2=3=4=5=6=7=8=9=:=;=<===>=?=@=A=B=C=D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z=[=\=]=^=_=`===b=c=d=e=f=g=h=i=j=k=l=m=n=o=p=q=r=s=t=u=v=w=x=y=z={=|=}=~===============================================================================M===========================`=============`=5================= = = = = =================== =!="=#=$=%=&='=(=)=*=+=,=-=.=/=0=1=2=3=4=M==6=7=8=9=:;==<==Dmap1Dmap2EarrayDmap3AaAbAcMaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_type]MaxMind DB Nested Data StructuresKdescriptionBen]@MaxMind DB Nested Data Structures Test database - contains deeply nested map/array structuresJip_versionIlanguagesBenJnode_count=Krecord_sizeMaxMind-DB-test-pointer-decoder.mmdb000066400000000000000000000033111507532544400340200ustar00rootroot00000000000000golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~```EarrayFarrayX Gboolean HbooleanXEbytes*Fdoubleh@Eg?[Efloat?Eint32CmapDmapX  Lutf8_stringXEhelloEmapXX  w y { * 3 } Guint128Fuint16dFuint32Fuint64Kutf8_stringRunicode! ☯ - ♫   3 5 ; @ G P V \ b h l MaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochbMdatabase_typeWMaxMind DB Decoder TestKdescriptionBen])MaxMind DB Decoder Test database - contains every MaxMind DB data typeJip_versionIlanguages Jnode_countKrecord_sizegolang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/README.md000066400000000000000000000027241507532544400266460ustar00rootroot00000000000000The [write-test-data.pl](https://github.com/maxmind/MaxMind-DB/blob/main/test-data/write-test-data.pl) script will create a small set of test databases with a variety of data and record sizes (24, 28, & 32 bit). These test databases are useful for testing code that reads MaxMind DB files. There is also a `maps-with-pointers.raw` file. This contains the raw output of the MaxMind::DB::Writer::Serializer module, when given a series of maps which share some keys and values. It is used to test that decoder code can handle pointers to map keys and values, as well as to the whole map. There are several ways to figure out what IP addresses are actually in the test databases. You can take a look at the [source-data directory](https://github.com/maxmind/MaxMind-DB/tree/main/source-data) in this repository. This directory contains JSON files which are used to generate many (but not all) of the database files. You can also use the [mmdb-dump-database script](https://github.com/maxmind/MaxMind-DB-Reader-perl/blob/main/eg/mmdb-dump-database) in the [MaxMind-DB-Reader-perl repository](https://github.com/maxmind/MaxMind-DB-Reader-perl). Some databases are intentionally broken and cannot be dumped. You can look at the [script which generates these databases](https://github.com/maxmind/MaxMind-DB/blob/main/test-data/write-test-data.pl) to see what IP addresses they include, which will be necessary for those databases which cannot be dumped because they contain intentional errors. golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/maps-with-pointers.raw000066400000000000000000000000731507532544400316470ustar00rootroot00000000000000Hlong_keyKlong_value1 Klong_value2Ilong_key2 &  2golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/test-data/write-test-data.pl000077500000000000000000000505321507532544400307450ustar00rootroot00000000000000#!/usr/bin/env perl use strict; use warnings; use autodie; use utf8; use Cwd qw( abs_path ); use File::Basename qw( dirname ); use File::Slurper qw( read_binary write_binary ); use Cpanel::JSON::XS 4.16 qw( decode_json ); use Math::Int128 qw( MAX_UINT128 string_to_uint128 uint128 ); use MaxMind::DB::Writer::Serializer 0.100004; use MaxMind::DB::Writer::Tree 0.100004; use MaxMind::DB::Writer::Util qw( key_for_data ); use Net::Works::Network (); use Test::MaxMind::DB::Common::Util qw( standard_test_metadata ); my $Dir = dirname( abs_path($0) ); sub main { my @sizes = ( 24, 28, 32 ); my @ipv4_range = ( '1.1.1.1', '1.1.1.32' ); my @ipv4_subnets = Net::Works::Network->range_as_subnets(@ipv4_range); for my $record_size (@sizes) { write_test_db( $record_size, \@ipv4_subnets, { ip_version => 4 }, 'ipv4', ); } write_broken_pointers_test_db( 24, \@ipv4_subnets, { ip_version => 4 }, 'broken-pointers', ); write_broken_search_tree_db( 24, \@ipv4_subnets, { ip_version => 4 }, 'broken-search-tree', ); my @ipv6_subnets = Net::Works::Network->range_as_subnets( '::1:ffff:ffff', '::2:0000:0059' ); for my $record_size (@sizes) { write_test_db( $record_size, \@ipv6_subnets, { ip_version => 6 }, 'ipv6', ); write_test_db( $record_size, [ @ipv6_subnets, Net::Works::Network->range_as_subnets( @ipv4_range, 6 ), ], { ip_version => 6 }, 'mixed', ); } write_decoder_test_db(); write_pointer_decoder_test_db(); write_deeply_nested_structures_db(); write_geoip2_dbs(); write_broken_geoip2_city_db(); write_invalid_node_count(); write_no_ipv4_tree_db(); write_no_map_db( \@ipv4_subnets ); write_test_serialization_data(); write_db_with_metadata_pointers(); } sub write_broken_pointers_test_db { no warnings 'redefine'; my $orig_store_data = MaxMind::DB::Writer::Serializer->can('store_data'); # This breaks the value of the record for the 1.1.1.32 network, causing it # to point outside the database. local *MaxMind::DB::Writer::Serializer::store_data = sub { my $data_pointer = shift->$orig_store_data(@_); my $value = $_[1]; if ( ref($value) eq 'HASH' && exists $value->{ip} && $value->{ip} eq '1.1.1.32' ) { $data_pointer += 100_000; } return $data_pointer; }; # The next hack will poison the data section for the 1.1.16/28 subnet # value. It's value will be a pointer that resolves to an offset outside # the database. my $key_to_poison = key_for_data( { ip => '1.1.1.16' } ); my $orig_position_for_data = MaxMind::DB::Writer::Serializer->can('_position_for_data'); local *MaxMind::DB::Writer::Serializer::_position_for_data = sub { my $key = $_[1]; if ( $key eq $key_to_poison ) { return 1_000_000; } else { return shift->$orig_position_for_data(@_); } }; write_test_db(@_); return; } sub write_broken_search_tree_db { my $filename = ( write_test_db(@_) )[1]; my $content = read_binary($filename); # This causes the right record of the first node to be 0, meaning it # points back to the top of the tree. This should never happen in a # database that follows the spec. substr( $content, 5, 1 ) = "\0"; write_binary( $filename, $content ); return; } sub write_test_db { my $record_size = shift; my $subnets = shift; my $metadata = shift; my $ip_version_name = shift; my $writer = MaxMind::DB::Writer::Tree->new( ip_version => $subnets->[0]->version(), record_size => $record_size, alias_ipv6_to_ipv4 => ( $subnets->[0]->version() == 6 ? 1 : 0 ), map_key_type_callback => sub { 'utf8_string' }, standard_test_metadata(), %{$metadata}, ); for my $subnet ( @{$subnets} ) { $writer->insert_network( $subnet, { ip => $subnet->first()->as_string() } ); } my $filename = sprintf( "$Dir/MaxMind-DB-test-%s-%i.mmdb", $ip_version_name, $record_size, ); open my $fh, '>', $filename; $writer->write_tree($fh); close $fh; return ( $writer, $filename ); } { # We will store this once for each subnet so we will also be testing # pointers, since the serializer will generate a pointer to this # structure. my %all_types = ( utf8_string => 'unicode! ☯ - ♫', double => 42.123456, bytes => pack( 'N', 42 ), uint16 => 100, uint32 => 2**28, int32 => -1 * ( 2**28 ), uint64 => uint128(1) << 60, uint128 => uint128(1) << 120, array => [ 1, 2, 3, ], map => { mapX => { utf8_stringX => 'hello', arrayX => [ 7, 8, 9 ], }, }, boolean => 1, float => 1.1, ); my %all_types_0 = ( utf8_string => q{}, double => 0, bytes => q{}, uint16 => 0, uint32 => 0, int32 => 0, uint64 => uint128(0), uint128 => uint128(0), array => [], map => {}, boolean => 0, float => 0, ); # We limit this to numeric types as the other types would generate # very large databases my %numeric_types_max = ( double => 'Inf', float => 'Inf', int32 => 0x7fffffff, uint16 => 0xffff, uint32 => string_to_uint128('0xffff_ffff'), uint64 => string_to_uint128('0xffff_ffff_ffff_ffff'), uint128 => MAX_UINT128, ); sub write_decoder_test_db { my $writer = _decoder_writer(); my @subnets = map { Net::Works::Network->new_from_string( string => $_ ) } qw( ::1.1.1.0/120 ::2.2.0.0/112 ::3.0.0.0/104 ::4.5.6.7/128 abcd::/64 1000::1234:0000/112 ); for my $subnet (@subnets) { $writer->insert_network( $subnet, \%all_types, ); } $writer->insert_network( Net::Works::Network->new_from_string( string => '::0.0.0.0/128' ), \%all_types_0, ); $writer->insert_network( Net::Works::Network->new_from_string( string => '::255.255.255.255/128' ), \%numeric_types_max, ); open my $fh, '>', "$Dir/MaxMind-DB-test-decoder.mmdb"; $writer->write_tree($fh); close $fh; return; } sub write_pointer_decoder_test_db { # We want to create a database where most values are pointers no warnings 'redefine'; local *MaxMind::DB::Writer::Serializer::_should_cache_value = sub { 1 }; my $writer = _decoder_writer(); # We add these slightly different records so that we end up with # pointers for the individual values in the maps, not just pointers # to the map $writer->insert_network( '1.0.0.0/32', { %all_types, booleanX => 0, arrayX => [ 1, 2, 3, 4, ], mapXX => { utf8_stringX => 'hello', arrayX => [ 7, 8, 9, 10 ], booleanX => 0, }, }, ); $writer->insert_network( '1.1.1.0/32', { %all_types, # This has to be 0 rather than 1 as otherwise the buggy # Perl writer will think it is the same as an uint32 value of # 1 and make a pointer to a value of a different type. boolean => 0, }, ); open my $fh, '>', "$Dir/MaxMind-DB-test-pointer-decoder.mmdb"; $writer->write_tree($fh); close $fh; return; } sub _decoder_writer { return MaxMind::DB::Writer::Tree->new( ip_version => 6, record_size => 24, database_type => 'MaxMind DB Decoder Test', languages => ['en'], description => { en => 'MaxMind DB Decoder Test database - contains every MaxMind DB data type', }, alias_ipv6_to_ipv4 => 1, remove_reserved_networks => 0, map_key_type_callback => sub { my $key = $_[0]; $key =~ s/X*$//; return $key eq 'array' ? [ 'array', 'uint32' ] : $key; }, ); } } { my %nested = ( map1 => { map2 => { array => [ { map3 => { a => 1, b => 2, c => 3 }, }, ], }, }, ); sub write_deeply_nested_structures_db { my $writer = MaxMind::DB::Writer::Tree->new( ip_version => 6, record_size => 24, ip_version => 6, database_type => 'MaxMind DB Nested Data Structures', languages => ['en'], description => { en => 'MaxMind DB Nested Data Structures Test database - contains deeply nested map/array structures', }, alias_ipv6_to_ipv4 => 1, map_key_type_callback => sub { my $key = shift; return $key =~ /^map/ ? 'map' : $key eq 'array' ? [ 'array', 'map' ] : 'uint32'; } ); my @subnets = map { Net::Works::Network->new_from_string( string => $_ ) } qw( ::1.1.1.0/120 ::2.2.0.0/112 ::3.0.0.0/104 ::4.5.6.7/128 abcd::/64 1000::1234:0000/112 ); for my $subnet (@subnets) { $writer->insert_network( $subnet, \%nested, ); } open my $fh, '>', "$Dir/MaxMind-DB-test-nested.mmdb"; $writer->write_tree($fh); close $fh; return; } } sub write_geoip2_dbs { _write_geoip2_db( @{$_}[ 0, 1 ], 'Test' ) for ( [ 'GeoIP2-Anonymous-IP', {} ], ['GeoIP2-City'], ['GeoIP2-Connection-Type'], ['GeoIP2-Country'], ['GeoIP2-DensityIncome'], ['GeoIP2-Domain'], ['GeoIP2-Enterprise'], ['GeoIP2-ISP'], ['GeoIP2-Precision-Enterprise'], ['GeoIP2-Static-IP-Score'], ['GeoIP2-User-Count'], ['GeoLite2-ASN'], ['GeoLite2-City'], ['GeoLite2-Country'], ); } sub write_broken_geoip2_city_db { no warnings 'redefine'; # This is how we _used_ to encode doubles. Storing them this way with the # current reader tools can lead to weird errors. This broken database is a # good way to test the robustness of reader code in the face of broken # databases. local *MaxMind::DB::Writer::Serializer::_encode_double = sub { my $self = shift; my $value = shift; $self->_simple_encode( double => $value ); }; _write_geoip2_db( 'GeoIP2-City', 0, 'Test Broken Double Format' ); } sub write_invalid_node_count { no warnings 'redefine'; local *MaxMind::DB::Writer::Tree::node_count = sub { 100000 }; _write_geoip2_db( 'GeoIP2-City', 0, 'Test Invalid Node Count' ); } sub _universal_map_key_type_callback { my $map = { # languages de => 'utf8_string', en => 'utf8_string', es => 'utf8_string', fr => 'utf8_string', ja => 'utf8_string', 'pt-BR' => 'utf8_string', ru => 'utf8_string', 'zh-CN' => 'utf8_string', # production accuracy_radius => 'uint16', autonomous_system_number => 'uint32', autonomous_system_organization => 'utf8_string', average_income => 'uint32', city => 'map', code => 'utf8_string', confidence => 'uint16', connection_type => 'utf8_string', continent => 'map', country => 'map', domain => 'utf8_string', geoname_id => 'uint32', ipv4_24 => 'uint32', ipv4_32 => 'uint32', ipv6_32 => 'uint32', ipv6_48 => 'uint32', ipv6_64 => 'uint32', is_anonymous => 'boolean', is_anonymous_proxy => 'boolean', is_anonymous_vpn => 'boolean', is_hosting_provider => 'boolean', is_in_european_union => 'boolean', is_legitimate_proxy => 'boolean', is_public_proxy => 'boolean', is_residential_proxy => 'boolean', is_satellite_provider => 'boolean', is_tor_exit_node => 'boolean', iso_code => 'utf8_string', isp => 'utf8_string', latitude => 'double', location => 'map', longitude => 'double', metro_code => 'uint16', mobile_country_code => 'utf8_string', mobile_network_code => 'utf8_string', names => 'map', organization => 'utf8_string', population_density => 'uint32', postal => 'map', registered_country => 'map', represented_country => 'map', score => 'double', static_ip_score => 'double', subdivisions => [ 'array', 'map' ], time_zone => 'utf8_string', traits => 'map', traits => 'map', type => 'utf8_string', user_type => 'utf8_string', # for testing only foo => 'utf8_string', bar => 'utf8_string', buzz => 'utf8_string', our_value => 'utf8_string', }; my $callback = sub { my $key = shift; return $map->{$key} || die <<"ERROR"; Unknown tree key '$key'. The universal_map_key_type_callback doesn't know what type to use for the passed key. If you are adding a new key that will be used in a frozen tree / mmdb then you should update the mapping in both our internal code and here. ERROR }; return $callback; } sub _write_geoip2_db { my $type = shift; my $populate_all_networks_with_data = shift; my $description = shift; my $writer = MaxMind::DB::Writer::Tree->new( ip_version => 6, record_size => 28, ip_version => 6, database_type => $type, languages => [ 'en', $type eq 'GeoIP2-City' ? ('zh') : () ], description => { en => ( $type =~ s/-/ /gr ) . " $description Database (fake GeoIP2 data, for example purposes only)", $type eq 'GeoIP2-City' ? ( zh => '小型数据库' ) : (), }, alias_ipv6_to_ipv4 => 1, map_key_type_callback => _universal_map_key_type_callback(), ); _populate_all_networks( $writer, $populate_all_networks_with_data ) if $populate_all_networks_with_data; my $value = shift; my $nodes = decode_json( read_binary("$Dir/../source-data/$type-Test.json") ); for my $node (@$nodes) { for my $network ( keys %$node ) { $writer->insert_network( Net::Works::Network->new_from_string( string => $network ), $node->{$network} ); } } my $suffix = $description =~ s/ /-/gr; open my $output_fh, '>', "$Dir/$type-$suffix.mmdb"; $writer->write_tree($output_fh); close $output_fh; return; } sub _populate_all_networks { my $writer = shift; my $data = shift; my $max_uint128 = uint128(0) - 1; my @networks = Net::Works::Network->range_as_subnets( Net::Works::Address->new_from_integer( integer => 0, version => 6, ), Net::Works::Address->new_from_integer( integer => $max_uint128, version => 6, ), ); for my $network (@networks) { $writer->insert_network( $network => $data ); } } sub write_no_ipv4_tree_db { my $subnets = shift; my $writer = MaxMind::DB::Writer::Tree->new( ip_version => 6, record_size => 24, ip_version => 6, database_type => 'MaxMind DB No IPv4 Search Tree', languages => ['en'], description => { en => 'MaxMind DB No IPv4 Search Tree', }, remove_reserved_networks => 0, root_data_type => 'utf8_string', map_key_type_callback => sub { {} }, ); my $subnet = Net::Works::Network->new_from_string( string => '::/64' ); $writer->insert_network( $subnet, $subnet->as_string() ); open my $output_fh, '>', "$Dir/MaxMind-DB-no-ipv4-search-tree.mmdb"; $writer->write_tree($output_fh); close $output_fh; return; } # The point of this database is to provide something where we can test looking # up a single value. In other words, each IP address points to a non-compound # value, a string rather than a map or array. sub write_no_map_db { my $subnets = shift; my $writer = MaxMind::DB::Writer::Tree->new( ip_version => 4, record_size => 24, database_type => 'MaxMind DB String Value Entries', languages => ['en'], description => { en => 'MaxMind DB String Value Entries (no maps or arrays as values)', }, root_data_type => 'utf8_string', map_key_type_callback => sub { {} }, ); for my $subnet ( @{$subnets} ) { $writer->insert_network( $subnet, $subnet->as_string() ); } open my $output_fh, '>', "$Dir/MaxMind-DB-string-value-entries.mmdb"; $writer->write_tree($output_fh); close $output_fh; return; } sub write_test_serialization_data { my $serializer = MaxMind::DB::Writer::Serializer->new( map_key_type_callback => sub { 'utf8_string' } ); $serializer->store_data( map => { long_key => 'long_value1' } ); $serializer->store_data( map => { long_key => 'long_value2' } ); $serializer->store_data( map => { long_key2 => 'long_value1' } ); $serializer->store_data( map => { long_key2 => 'long_value2' } ); $serializer->store_data( map => { long_key => 'long_value1' } ); $serializer->store_data( map => { long_key2 => 'long_value2' } ); open my $fh, '>', "$Dir/maps-with-pointers.raw"; print {$fh} ${ $serializer->buffer() } or die "Cannot write to maps-with-pointers.raw: $!"; close $fh; return; } sub write_db_with_metadata_pointers { my $repeated_string = 'Lots of pointers in metadata'; my $writer = MaxMind::DB::Writer::Tree->new( ip_version => 6, record_size => 24, map_key_type_callback => sub { 'utf8_string' }, database_type => $repeated_string, languages => [ 'en', 'es', 'zh' ], description => { en => $repeated_string, es => $repeated_string, zh => $repeated_string, }, ); _populate_all_networks( $writer, {} ); open my $fh, '>', "$Dir/MaxMind-DB-test-metadata-pointers.mmdb"; $writer->write_tree($fh); close $fh; } main(); golang-github-oschwald-maxminddb-golang-v2-2.0.0/test-data/tidyall.ini000066400000000000000000000000761507532544400256420ustar00rootroot00000000000000[PerlTidy] select = **/*.{pl,pm,t} [JSON] select = **/*.json golang-github-oschwald-maxminddb-golang-v2-2.0.0/traverse.go000066400000000000000000000160271507532544400237760ustar00rootroot00000000000000package maxminddb import ( "errors" "fmt" "iter" "net/netip" "github.com/oschwald/maxminddb-golang/v2/internal/mmdberrors" ) // Internal structure used to keep track of nodes we still need to visit. type netNode struct { ip netip.Addr bit uint pointer uint } type networkOptions struct { includeAliasedNetworks bool includeEmptyNetworks bool skipEmptyValues bool } var ( allIPv4 = netip.MustParsePrefix("0.0.0.0/0") allIPv6 = netip.MustParsePrefix("::/0") ) // NetworksOption are options for Networks and NetworksWithin. type NetworksOption func(*networkOptions) // IncludeAliasedNetworks is an option for Networks and NetworksWithin // that makes them iterate over aliases of the IPv4 subtree in an IPv6 // database, e.g., ::ffff:0:0/96, 2001::/32, and 2002::/16. func IncludeAliasedNetworks() NetworksOption { return func(networks *networkOptions) { networks.includeAliasedNetworks = true } } // IncludeNetworksWithoutData is an option for Networks and NetworksWithin // that makes them include networks without any data in the iteration. func IncludeNetworksWithoutData() NetworksOption { return func(networks *networkOptions) { networks.includeEmptyNetworks = true } } // SkipEmptyValues is an option for Networks and NetworksWithin that makes // them skip networks whose data is an empty map or empty array. This is // useful for databases that store empty maps or arrays for records without // meaningful data, allowing iteration over only records with actual content. func SkipEmptyValues() NetworksOption { return func(networks *networkOptions) { networks.skipEmptyValues = true } } // Networks returns an iterator that can be used to traverse the networks in // the database. // // Please note that a MaxMind DB may map IPv4 networks into several locations // in an IPv6 database. This iterator will only iterate over these once by // default. To iterate over all the IPv4 network locations, use the // [IncludeAliasedNetworks] option. // // Networks without data are excluded by default. To include them, use // [IncludeNetworksWithoutData]. func (r *Reader) Networks(options ...NetworksOption) iter.Seq[Result] { if r.Metadata.IPVersion == 6 { return r.NetworksWithin(allIPv6, options...) } return r.NetworksWithin(allIPv4, options...) } // NetworksWithin returns an iterator that can be used to traverse the networks // in the database which are contained in a given prefix. // // Please note that a MaxMind DB may map IPv4 networks into several locations // in an IPv6 database. This iterator will only iterate over these once by // default. To iterate over all the IPv4 network locations, use the // [IncludeAliasedNetworks] option. // // If the provided prefix is contained within a network in the database, the // iterator will iterate over exactly one network, the containing network. // // Networks without data are excluded by default. To include them, use // [IncludeNetworksWithoutData]. func (r *Reader) NetworksWithin(prefix netip.Prefix, options ...NetworksOption) iter.Seq[Result] { return func(yield func(Result) bool) { if !prefix.IsValid() { yield(Result{ err: errors.New("invalid prefix"), }) return } if r.Metadata.IPVersion == 4 && prefix.Addr().Is6() { yield(Result{ err: fmt.Errorf( "error getting networks with '%s': you attempted to use an IPv6 network in an IPv4-only database", prefix, ), }) return } n := &networkOptions{} for _, option := range options { option(n) } ip := prefix.Addr() netIP := ip stopBit := prefix.Bits() if ip.Is4() { netIP = v4ToV16(ip) stopBit += 96 } if stopBit > 128 { yield(Result{ err: errors.New("invalid prefix: exceeds IPv6 maximum of 128 bits"), }) return } pointer, bit, err := r.traverseTree(ip, 0, stopBit) if err != nil { yield(Result{ ip: ip, err: err, }) return } prefix, err := netIP.Prefix(bit) if err != nil { yield(Result{ ip: ip, prefixLen: uint8(bit), err: fmt.Errorf("prefixing %s with %d", netIP, bit), }) return } nodes := make([]netNode, 0, 64) nodes = append(nodes, netNode{ ip: prefix.Addr(), bit: uint(bit), pointer: pointer, }, ) for len(nodes) > 0 { node := nodes[len(nodes)-1] nodes = nodes[:len(nodes)-1] for { if node.pointer == r.Metadata.NodeCount { if n.includeEmptyNetworks { ok := yield(Result{ ip: mappedIP(node.ip), offset: notFound, prefixLen: uint8(node.bit), }) if !ok { return } } break } // This skips IPv4 aliases without hardcoding the networks that the writer // currently aliases. if !n.includeAliasedNetworks && r.ipv4Start != 0 && node.pointer == r.ipv4Start && !isInIPv4Subtree(node.ip) { break } if node.pointer > r.Metadata.NodeCount { offset, err := r.resolveDataPointer(node.pointer) // Check if we should skip empty values (only if no error) if err == nil && n.skipEmptyValues { var isEmpty bool isEmpty, err = r.decoder.IsEmptyValueAt(uint(offset)) if err == nil && isEmpty { // Skip this empty value break } } ok := yield(Result{ reader: r, ip: mappedIP(node.ip), offset: uint(offset), prefixLen: uint8(node.bit), err: err, }) if !ok { return } break } ipRight := node.ip.As16() if len(ipRight) <= int(node.bit>>3) { displayAddr := node.ip if isInIPv4Subtree(node.ip) { displayAddr = v6ToV4(displayAddr) } res := Result{ ip: displayAddr, prefixLen: uint8(node.bit), } res.err = mmdberrors.NewInvalidDatabaseError( "invalid search tree at %s", res.Prefix()) yield(res) return } ipRight[node.bit>>3] |= 1 << (7 - (node.bit % 8)) baseOffset := node.pointer * r.nodeOffsetMult leftPointer, rightPointer, err := readNodePairBySize( r.buffer, baseOffset, r.Metadata.RecordSize, ) if err != nil { yield(Result{ ip: mappedIP(node.ip), prefixLen: uint8(node.bit), err: err, }) return } node.bit++ nodes = append(nodes, netNode{ pointer: rightPointer, ip: netip.AddrFrom16(ipRight), bit: node.bit, }) node.pointer = leftPointer } } } } var ipv4SubtreeBoundary = netip.MustParseAddr("::255.255.255.255").Next() func mappedIP(ip netip.Addr) netip.Addr { if isInIPv4Subtree(ip) { return v6ToV4(ip) } return ip } // isInIPv4Subtree returns true if the IP is in the database's IPv4 subtree. func isInIPv4Subtree(ip netip.Addr) bool { return ip.Is4() || ip.Less(ipv4SubtreeBoundary) } // We store IPv4 addresses at ::/96 for unclear reasons. func v4ToV16(ip netip.Addr) netip.Addr { b4 := ip.As4() var b16 [16]byte copy(b16[12:], b4[:]) return netip.AddrFrom16(b16) } // Converts an IPv4 address embedded in IPv6 to IPv4. func v6ToV4(ip netip.Addr) netip.Addr { b := ip.As16() v, _ := netip.AddrFromSlice(b[12:]) return v } golang-github-oschwald-maxminddb-golang-v2-2.0.0/traverse_test.go000066400000000000000000000303341507532544400250320ustar00rootroot00000000000000package maxminddb import ( "fmt" "net/netip" "reflect" "runtime" "strconv" "strings" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestNetworks(t *testing.T) { for _, recordSize := range []uint{24, 28, 32} { for _, ipVersion := range []uint{4, 6} { fileName := testFile( fmt.Sprintf("MaxMind-DB-test-ipv%d-%d.mmdb", ipVersion, recordSize), ) reader, err := Open(fileName) require.NoError(t, err, "unexpected error while opening database: %v", err) for result := range reader.Networks() { record := struct { IP string `maxminddb:"ip"` }{} err := result.Decode(&record) require.NoError(t, err) network := result.Prefix() assert.Equal(t, record.IP, network.Addr().String(), "expected %s got %s", record.IP, network.Addr().String(), ) } require.NoError(t, reader.Close()) } } } func TestNetworksWithInvalidSearchTree(t *testing.T) { reader, err := Open(testFile("MaxMind-DB-test-broken-search-tree-24.mmdb")) require.NoError(t, err, "unexpected error while opening database: %v", err) for result := range reader.Networks() { var record any err = result.Decode(&record) if err != nil { break } } require.EqualError(t, err, "invalid search tree at 128.128.128.128/32") require.NoError(t, reader.Close()) } type networkTest struct { Network string Database string Expected []string Options []NetworksOption } var tests = []networkTest{ { Network: "0.0.0.0/0", Database: "ipv4", Expected: []string{ "1.1.1.1/32", "1.1.1.2/31", "1.1.1.4/30", "1.1.1.8/29", "1.1.1.16/28", "1.1.1.32/32", }, }, { // This is intentionally in non-canonical form to test // that we handle it correctly. Network: "1.1.1.1/30", Database: "ipv4", Expected: []string{ "1.1.1.1/32", "1.1.1.2/31", }, }, { Network: "1.1.1.2/31", Database: "ipv4", Expected: []string{ "1.1.1.2/31", }, }, { Network: "1.1.1.1/32", Database: "ipv4", Expected: []string{ "1.1.1.1/32", }, }, { Network: "1.1.1.2/32", Database: "ipv4", Expected: []string{ "1.1.1.2/31", }, }, { Network: "1.1.1.3/32", Database: "ipv4", Expected: []string{ "1.1.1.2/31", }, }, { Network: "1.1.1.19/32", Database: "ipv4", Expected: []string{ "1.1.1.16/28", }, }, { Network: "255.255.255.0/24", Database: "ipv4", Expected: []string(nil), }, { Network: "1.1.1.1/32", Database: "mixed", Expected: []string{ "1.1.1.1/32", }, }, { Network: "255.255.255.0/24", Database: "mixed", Expected: []string(nil), }, { Network: "::1:ffff:ffff/128", Database: "ipv6", Expected: []string{ "::1:ffff:ffff/128", }, }, { Network: "::/0", Database: "ipv6", Expected: []string{ "::1:ffff:ffff/128", "::2:0:0/122", "::2:0:40/124", "::2:0:50/125", "::2:0:58/127", }, }, { Network: "::2:0:40/123", Database: "ipv6", Expected: []string{ "::2:0:40/124", "::2:0:50/125", "::2:0:58/127", }, }, { Network: "0:0:0:0:0:ffff:ffff:ff00/120", Database: "ipv6", Expected: []string(nil), }, { Network: "0.0.0.0/0", Database: "mixed", Expected: []string{ "1.1.1.1/32", "1.1.1.2/31", "1.1.1.4/30", "1.1.1.8/29", "1.1.1.16/28", "1.1.1.32/32", }, }, { Network: "0.0.0.0/0", Database: "mixed", Expected: []string{ "1.1.1.1/32", "1.1.1.2/31", "1.1.1.4/30", "1.1.1.8/29", "1.1.1.16/28", "1.1.1.32/32", }, }, { Network: "::/0", Database: "mixed", Expected: []string{ "1.1.1.1/32", "1.1.1.2/31", "1.1.1.4/30", "1.1.1.8/29", "1.1.1.16/28", "1.1.1.32/32", "::1:ffff:ffff/128", "::2:0:0/122", "::2:0:40/124", "::2:0:50/125", "::2:0:58/127", "::ffff:1.1.1.1/128", "::ffff:1.1.1.2/127", "::ffff:1.1.1.4/126", "::ffff:1.1.1.8/125", "::ffff:1.1.1.16/124", "::ffff:1.1.1.32/128", "2001:0:101:101::/64", "2001:0:101:102::/63", "2001:0:101:104::/62", "2001:0:101:108::/61", "2001:0:101:110::/60", "2001:0:101:120::/64", "2002:101:101::/48", "2002:101:102::/47", "2002:101:104::/46", "2002:101:108::/45", "2002:101:110::/44", "2002:101:120::/48", }, Options: []NetworksOption{IncludeAliasedNetworks()}, }, { Network: "::/0", Database: "mixed", Expected: []string{ "1.1.1.1/32", "1.1.1.2/31", "1.1.1.4/30", "1.1.1.8/29", "1.1.1.16/28", "1.1.1.32/32", "::1:ffff:ffff/128", "::2:0:0/122", "::2:0:40/124", "::2:0:50/125", "::2:0:58/127", }, }, { Network: "1.0.0.0/8", Database: "mixed", Expected: []string{ "1.0.0.0/16", "1.1.0.0/24", "1.1.1.0/32", "1.1.1.1/32", "1.1.1.2/31", "1.1.1.4/30", "1.1.1.8/29", "1.1.1.16/28", "1.1.1.32/32", "1.1.1.33/32", "1.1.1.34/31", "1.1.1.36/30", "1.1.1.40/29", "1.1.1.48/28", "1.1.1.64/26", "1.1.1.128/25", "1.1.2.0/23", "1.1.4.0/22", "1.1.8.0/21", "1.1.16.0/20", "1.1.32.0/19", "1.1.64.0/18", "1.1.128.0/17", "1.2.0.0/15", "1.4.0.0/14", "1.8.0.0/13", "1.16.0.0/12", "1.32.0.0/11", "1.64.0.0/10", "1.128.0.0/9", }, Options: []NetworksOption{IncludeNetworksWithoutData()}, }, { Network: "1.1.1.16/28", Database: "mixed", Expected: []string{ "1.1.1.16/28", }, }, { Network: "1.1.1.4/30", Database: "ipv4", Expected: []string{ "1.1.1.4/30", }, }, } func TestNetworksWithin(t *testing.T) { for _, v := range tests { for _, recordSize := range []uint{24, 28, 32} { var opts []string for _, o := range v.Options { opts = append(opts, runtime.FuncForPC(reflect.ValueOf(o).Pointer()).Name()) } name := fmt.Sprintf( "%s-%d: %s, options: %v", v.Database, recordSize, v.Network, opts, ) t.Run(name, func(t *testing.T) { fileName := testFile( fmt.Sprintf("MaxMind-DB-test-%s-%d.mmdb", v.Database, recordSize), ) reader, err := Open(fileName) require.NoError(t, err, "unexpected error while opening database: %v", err) // We are purposely not using net.ParseCIDR so that we can pass in // values that aren't in canonical form. parts := strings.Split(v.Network, "/") ip, err := netip.ParseAddr(parts[0]) require.NoError(t, err) prefixLength, err := strconv.Atoi(parts[1]) require.NoError(t, err) network, err := ip.Prefix(prefixLength) require.NoError(t, err) require.NoError(t, err) var innerIPs []string for result := range reader.NetworksWithin(network, v.Options...) { record := struct { IP string `maxminddb:"ip"` }{} err := result.Decode(&record) require.NoError(t, err) innerIPs = append(innerIPs, result.Prefix().String()) } assert.Equal(t, v.Expected, innerIPs) require.NoError(t, reader.Close()) }) } } } var geoipTests = []networkTest{ { Network: "81.2.69.128/26", Database: "GeoIP2-Country-Test.mmdb", Expected: []string{ "81.2.69.142/31", "81.2.69.144/28", "81.2.69.160/27", }, }, } func TestGeoIPNetworksWithin(t *testing.T) { for _, v := range geoipTests { fileName := testFile(v.Database) reader, err := Open(fileName) require.NoError(t, err, "unexpected error while opening database: %v", err) prefix, err := netip.ParsePrefix(v.Network) require.NoError(t, err) var innerIPs []string for result := range reader.NetworksWithin(prefix) { record := struct { IP string `maxminddb:"ip"` }{} err := result.Decode(&record) require.NoError(t, err) innerIPs = append(innerIPs, result.Prefix().String()) } assert.Equal(t, v.Expected, innerIPs) require.NoError(t, reader.Close()) } } func BenchmarkNetworks(b *testing.B) { db, err := Open(testFile("GeoIP2-Country-Test.mmdb")) require.NoError(b, err) for range b.N { for r := range db.Networks() { var rec struct{} err = r.Decode(&rec) if err != nil { b.Error(err) } } } require.NoError(b, db.Close(), "error on close") } func TestSkipEmptyValues(t *testing.T) { // Test with database that has many empty values reader, err := Open(testFile("GeoIP2-Anonymous-IP-Test.mmdb")) require.NoError(t, err) defer reader.Close() // Count networks without SkipEmptyValues var countWithout, emptyCount int for result := range reader.Networks() { require.NoError(t, result.Err()) countWithout++ if result.Found() { var data map[string]any err := result.Decode(&data) require.NoError(t, err) if len(data) == 0 { emptyCount++ } } } // Count networks with SkipEmptyValues var countWith int for result := range reader.Networks(SkipEmptyValues()) { require.NoError(t, result.Err()) countWith++ if result.Found() { var data map[string]any err := result.Decode(&data) require.NoError(t, err) assert.NotEmpty(t, data, "should not see empty maps with SkipEmptyValues") } } // Verify the option works as expected assert.Positive(t, emptyCount, "test database should have empty values") assert.Equal( t, countWithout-emptyCount, countWith, "SkipEmptyValues should skip exactly the empty values", ) t.Logf("Without SkipEmptyValues: %d networks (%d empty)", countWithout, emptyCount) t.Logf("With SkipEmptyValues: %d networks (0 empty)", countWith) } func TestSkipEmptyValuesWithNetworksWithin(t *testing.T) { tests := []struct { name string dbFile string prefix string options []NetworksOption validateFn func(t *testing.T, count, emptyCount int) }{ { name: "NetworksWithin without options on DB with empty values", dbFile: "GeoIP2-Anonymous-IP-Test.mmdb", prefix: "0.0.0.0/0", options: nil, validateFn: func(t *testing.T, count, emptyCount int) { assert.Positive(t, count, "should have networks") assert.Positive(t, emptyCount, "should find empty maps") t.Logf("Found %d networks, %d empty", count, emptyCount) }, }, { name: "NetworksWithin with SkipEmptyValues", dbFile: "GeoIP2-Anonymous-IP-Test.mmdb", prefix: "0.0.0.0/0", options: []NetworksOption{SkipEmptyValues()}, validateFn: func(t *testing.T, count, emptyCount int) { assert.Positive(t, count, "should have networks") assert.Equal(t, 0, emptyCount, "should not find empty maps with SkipEmptyValues") }, }, { name: "NetworksWithin specific subnet without empty values", dbFile: "GeoIP2-Connection-Type-Test.mmdb", prefix: "1.0.0.0/8", options: []NetworksOption{SkipEmptyValues()}, validateFn: func(t *testing.T, count, _ int) { assert.Positive(t, count, "should have networks in 1.0.0.0/8") }, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { reader, err := Open(testFile(tt.dbFile)) require.NoError(t, err) defer reader.Close() prefix, err := netip.ParsePrefix(tt.prefix) require.NoError(t, err) var count, emptyCount int for result := range reader.NetworksWithin(prefix, tt.options...) { require.NoError(t, result.Err()) count++ if !result.Found() { continue } var data map[string]any err := result.Decode(&data) require.NoError(t, err) if len(data) == 0 { emptyCount++ } } tt.validateFn(t, count, emptyCount) }) } } func TestSkipEmptyValuesWithOtherOptions(t *testing.T) { // Test that SkipEmptyValues works correctly with other options reader, err := Open(testFile("GeoIP2-Anonymous-IP-Test.mmdb")) require.NoError(t, err) defer reader.Close() // Test with IncludeNetworksWithoutData - should still skip empty maps var count int for result := range reader.Networks(IncludeNetworksWithoutData(), SkipEmptyValues()) { require.NoError(t, result.Err()) count++ if result.Found() { var data map[string]any err := result.Decode(&data) require.NoError(t, err) assert.NotEmpty(t, data, "should not see empty maps even with other options") } } assert.Positive(t, count, "should have some networks") } func BenchmarkSkipEmptyValues(b *testing.B) { db, err := Open(testFile("GeoIP2-Anonymous-IP-Test.mmdb")) require.NoError(b, err) defer db.Close() b.Run("without SkipEmptyValues", func(b *testing.B) { for range b.N { for r := range db.Networks() { if r.Err() != nil { b.Fatal(r.Err()) } } } }) b.Run("with SkipEmptyValues", func(b *testing.B) { for range b.N { for r := range db.Networks(SkipEmptyValues()) { if r.Err() != nil { b.Fatal(r.Err()) } } } }) } golang-github-oschwald-maxminddb-golang-v2-2.0.0/verifier.go000066400000000000000000000065621507532544400237610ustar00rootroot00000000000000package maxminddb import ( "runtime" "github.com/oschwald/maxminddb-golang/v2/internal/mmdberrors" ) type verifier struct { reader *Reader } // Verify performs comprehensive validation of the MaxMind DB file. // // This method validates: // - Metadata section: format versions, required fields, and value constraints // - Search tree: traverses all networks to verify tree structure integrity // - Data section separator: validates the 16-byte separator between tree and data // - Data section: verifies all data records referenced by the search tree // // The verifier is stricter than the MaxMind DB specification and may return // errors on some databases that are still readable by normal operations. // This method is useful for: // - Validating database files after download or generation // - Debugging database corruption issues // - Ensuring database integrity in critical applications // // Note: Verification traverses the entire database and may be slow on large files. // The method is thread-safe and can be called on an active Reader. func (r *Reader) Verify() error { v := verifier{r} if err := v.verifyMetadata(); err != nil { return err } err := v.verifyDatabase() runtime.KeepAlive(v.reader) return err } func (v *verifier) verifyMetadata() error { metadata := v.reader.Metadata if metadata.BinaryFormatMajorVersion != 2 { return testError( "binary_format_major_version", 2, metadata.BinaryFormatMajorVersion, ) } if metadata.BinaryFormatMinorVersion != 0 { return testError( "binary_format_minor_version", 0, metadata.BinaryFormatMinorVersion, ) } if metadata.DatabaseType == "" { return testError( "database_type", "non-empty string", metadata.DatabaseType, ) } if len(metadata.Description) == 0 { return testError( "description", "non-empty map", metadata.Description, ) } if metadata.IPVersion != 4 && metadata.IPVersion != 6 { return testError( "ip_version", "4 or 6", metadata.IPVersion, ) } if metadata.RecordSize != 24 && metadata.RecordSize != 28 && metadata.RecordSize != 32 { return testError( "record_size", "24, 28, or 32", metadata.RecordSize, ) } if metadata.NodeCount == 0 { return testError( "node_count", "positive integer", metadata.NodeCount, ) } return nil } func (v *verifier) verifyDatabase() error { offsets, err := v.verifySearchTree() if err != nil { return err } if err := v.verifyDataSectionSeparator(); err != nil { return err } return v.reader.decoder.VerifyDataSection(offsets) } func (v *verifier) verifySearchTree() (map[uint]bool, error) { offsets := make(map[uint]bool) for result := range v.reader.Networks() { if err := result.Err(); err != nil { return nil, err } offsets[result.offset] = true } return offsets, nil } func (v *verifier) verifyDataSectionSeparator() error { separatorStart := v.reader.Metadata.NodeCount * v.reader.Metadata.RecordSize / 4 separator := v.reader.buffer[separatorStart : separatorStart+dataSectionSeparatorSize] for _, b := range separator { if b != 0 { return mmdberrors.NewInvalidDatabaseError( "unexpected byte in data separator: %v", separator, ) } } return nil } func testError( field string, expected any, actual any, ) error { return mmdberrors.NewInvalidDatabaseError( "%v - Expected: %v Actual: %v", field, expected, actual, ) } golang-github-oschwald-maxminddb-golang-v2-2.0.0/verifier_test.go000066400000000000000000000030731507532544400250120ustar00rootroot00000000000000package maxminddb import ( "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestVerifyOnGoodDatabases(t *testing.T) { databases := []string{ "GeoIP2-Anonymous-IP-Test.mmdb", "GeoIP2-City-Test.mmdb", "GeoIP2-Connection-Type-Test.mmdb", "GeoIP2-Country-Test.mmdb", "GeoIP2-Domain-Test.mmdb", "GeoIP2-ISP-Test.mmdb", "GeoIP2-Precision-Enterprise-Test.mmdb", "MaxMind-DB-no-ipv4-search-tree.mmdb", "MaxMind-DB-string-value-entries.mmdb", "MaxMind-DB-test-decoder.mmdb", "MaxMind-DB-test-ipv4-24.mmdb", "MaxMind-DB-test-ipv4-28.mmdb", "MaxMind-DB-test-ipv4-32.mmdb", "MaxMind-DB-test-ipv6-24.mmdb", "MaxMind-DB-test-ipv6-28.mmdb", "MaxMind-DB-test-ipv6-32.mmdb", "MaxMind-DB-test-mixed-24.mmdb", "MaxMind-DB-test-mixed-28.mmdb", "MaxMind-DB-test-mixed-32.mmdb", "MaxMind-DB-test-nested.mmdb", } for _, database := range databases { t.Run(database, func(t *testing.T) { reader, err := Open(testFile(database)) require.NoError(t, err) require.NoError( t, reader.Verify(), "Received error (%v) when verifying %v", err, database, ) }) } } func TestVerifyOnBrokenDatabases(t *testing.T) { databases := []string{ "GeoIP2-City-Test-Broken-Double-Format.mmdb", "MaxMind-DB-test-broken-pointers-24.mmdb", "MaxMind-DB-test-broken-search-tree-24.mmdb", } for _, database := range databases { reader, err := Open(testFile(database)) require.NoError(t, err) assert.Error(t, reader.Verify(), "Did not receive expected error when verifying %v", database, ) } }