diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..dac15fc --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +## 1.0.0 - 2019-01-04 +* We no longer include the database's buffer in inspect output. This avoids + showing excessive output when creating a memory reader in irb. Reported + by Wojciech Wnętrzak. GitHub #6. + +## 1.0.0.beta - 2018-12-24 +* Initial implementation. diff --git a/LICENSE-APACHE b/LICENSE-APACHE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/LICENSE-APACHE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/LICENSE-MIT b/LICENSE-MIT new file mode 100644 index 0000000..f85e365 --- /dev/null +++ b/LICENSE-MIT @@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.dev.md b/README.dev.md new file mode 100644 index 0000000..4a54e40 --- /dev/null +++ b/README.dev.md @@ -0,0 +1,33 @@ +# How to release +* Update changelog and set release date +* Bump version in `maxmind-db.gemspec` +* Commit: `git commit -m v1.0.0` +* Tag: `git tag -a v1.0.0 -m v1.0.0` +* Clean up to be sure nothing stray gets into gem: `git clean -dxff` +* Create `.gem` file: `gem build maxmind-db.gemspec` +* Complete prerequisites (see below) +* Upload to rubygems.org: `gem push maxmind-db-1.0.0.gem` +* Push: `git push` +* Push tag: `git push --tags` +* Double check it looks okay at https://rubygems.org/gems/maxmind-db and + https://www.rubydoc.info/gems/maxmind-db + + +# Prerequisites + +## Step 1 +Sign up for an account at rubygems.org if you don't have one. + +Enable multi factor authentication. + + +## Step 2 +Ask someone who is an owner of the gem to add you as one. + +They do this by using the `gem owner` command +([docs](https://guides.rubygems.org/command-reference/#gem-owner)). + + +## Step 3 +Go to your rubygems.org profile and find the curl command to run to +download your API key. diff --git a/README.md b/README.md new file mode 100644 index 0000000..852e826 --- /dev/null +++ b/README.md @@ -0,0 +1,71 @@ +# MaxMind DB Reader Ruby API + +## Description + +This is the Ruby API for reading [MaxMind +DB](https://maxmind.github.io/MaxMind-DB/) files. MaxMind DB is a binary +file format that stores data indexed by IP address subnets (IPv4 or IPv6). + + +## Installation + +``` +gem install maxmind-db +``` + +Or from source: + +``` +gem build maxmind-db.spec +gem install ./maxmind-db-xxx.gem +``` + +## Usage + +```ruby +require 'maxmind/db' + +reader = MaxMind::DB.new('GeoIP2-City.mmdb', mode: MaxMind::DB::MODE_MEMORY) + +record = reader.get('1.1.1.1') +if record.nil? + puts '1.1.1.1 was not found in the database' +else + puts record['country']['iso_code'] + puts record['country']['names']['en'] +end + +reader.close +``` + +For more information see the +[documentation](https://www.rubydoc.info/gems/maxmind-db). + +## Requirements + +This code requires Ruby version 2.3 or higher. Older versions may work, but +are not supported. + +## Contributing + +Patches and pull requests are encouraged. Please include unit tests +whenever possible. + +## Support + +Please report all issues with this code using the [GitHub issue +tracker](https://github.com/maxmind/MaxMind-DB-Reader-ruby/issues). + +If you are having an issue with a MaxMind service that is not specific to the +client API, please see [our support page](https://www.maxmind.com/en/support). + +## Versioning + +This library uses [Semantic Versioning](https://semver.org/). + +## Copyright and License + +This software is Copyright (c) 2018 - 2019 by MaxMind, Inc. + +This is free software, licensed under the [Apache License, Version +2.0](LICENSE-APACHE) or the [MIT License](LICENSE-MIT), at your option. diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..b7ff8af --- /dev/null +++ b/Rakefile @@ -0,0 +1,12 @@ +require 'rake/testtask' +require 'rubocop/rake_task' + +Rake::TestTask.new do |t| + t.libs << 'test' +end + +RuboCop::RakeTask.new + +desc 'Run tests and RuboCop' +task default: :test +task default: :rubocop diff --git a/bin/mmdb-benchmark.rb b/bin/mmdb-benchmark.rb new file mode 100755 index 0000000..9b948f2 --- /dev/null +++ b/bin/mmdb-benchmark.rb @@ -0,0 +1,61 @@ +#!/usr/bin/env ruby + +require 'maxmind/db' + +def main + args = parse_args + return false if args.nil? + + reader = MaxMind::DB.new(args[:database], mode: MaxMind::DB::MODE_MEMORY) + benchmark(reader, args[:ip_file]) + true +end + +def parse_args + if ARGV.length != 2 + print_usage + return nil + end + + database = ARGV[0] + ip_file = ARGV[1] + + { + database: database, + ip_file: ip_file, + } +end + +def print_usage + STDERR.puts "Usage: #{$PROGRAM_NAME} [IP file]" + STDERR.puts + STDERR.puts 'Benchmark by reading IPs from the IP file and looking up each one in the MMDB file.' +end + +def benchmark(reader, file) + n = 0 + count = 200_000 + start = Time.now.to_f + File.open(file) do |fh| + fh.each do |line| + n += 1 + line.strip! + + reader.get(line) + + write_status(start, n) if n % 1000 == 0 + break if n == count + end + end +end + +def write_status(start, count) + now = Time.now.to_f + elapsed = now - start + rate = 1.0 * count / elapsed + puts format('%d @ %.2f lookups per second (%d seconds elapsed)', count, rate, elapsed) +end + +exit 0 if main + +exit 1 diff --git a/lib/maxmind/db/decoder.rb b/lib/maxmind/db/decoder.rb new file mode 100644 index 0000000..e63b0b3 --- /dev/null +++ b/lib/maxmind/db/decoder.rb @@ -0,0 +1,233 @@ +require 'maxmind/db/errors' + +module MaxMind # :nodoc: + class DB + # +Decoder+ decodes a {MaxMind DB}[http://maxmind.github.io/MaxMind-DB/] + # data section. + # + # Typically you will interact with this class through a Reader rather than + # directly. + class Decoder # :nodoc: + # Create a +Decoder+. + # + # +io+ is the DB. It must provide a +read+ method. It must be opened in + # binary mode. + # + # +pointer_base+ is the base number to use when decoding a pointer. It is + # where the data section begins rather than the beginning of the file. + # The specification states the formula in the `Data Section Separator' + # section. + # + # +pointer_test+ is used for testing pointer code. + def initialize(io, pointer_base = 0, pointer_test = false) + @io = io + @pointer_base = pointer_base + @pointer_test = pointer_test + end + + private + + def decode_array(size, offset) + array = [] + size.times do + value, offset = decode(offset) + array << value + end + [array, offset] + end + + def decode_boolean(size, offset) + [size != 0, offset] + end + + def decode_bytes(size, offset) + [@io.read(offset, size), offset + size] + end + + def decode_double(size, offset) + verify_size(8, size) + buf = @io.read(offset, 8) + [buf.unpack('G'.freeze)[0], offset + 8] + end + + def decode_float(size, offset) + verify_size(4, size) + buf = @io.read(offset, 4) + [buf.unpack('g'.freeze)[0], offset + 4] + end + + def verify_size(expected, actual) + return if expected == actual + + raise InvalidDatabaseError, + 'The MaxMind DB file\'s data section contains bad data (unknown data type or corrupt data)'.freeze + end + + def decode_int32(size, offset) + decode_int('l>'.freeze, 4, size, offset) + end + + def decode_uint16(size, offset) + decode_int('n'.freeze, 2, size, offset) + end + + def decode_uint32(size, offset) + decode_int('N'.freeze, 4, size, offset) + end + + def decode_uint64(size, offset) + decode_int('Q>'.freeze, 8, size, offset) + end + + def decode_int(type_code, type_size, size, offset) + return 0, offset if size == 0 + + buf = @io.read(offset, size) + buf = buf.rjust(type_size, "\x00".freeze) if size != type_size + [buf.unpack(type_code)[0], offset + size] + end + + def decode_uint128(size, offset) + return 0, offset if size == 0 + + buf = @io.read(offset, size) + + if size <= 8 + buf = buf.rjust(8, "\x00".freeze) + return buf.unpack('Q>'.freeze)[0], offset + size + end + + a_bytes = buf[0...-8].rjust(8, "\x00".freeze) + b_bytes = buf[-8...buf.length] + a = a_bytes.unpack('Q>'.freeze)[0] + b = b_bytes.unpack('Q>'.freeze)[0] + a <<= 64 + [a | b, offset + size] + end + + def decode_map(size, offset) + container = {} + size.times do + key, offset = decode(offset) + value, offset = decode(offset) + container[key] = value + end + [container, offset] + end + + def decode_pointer(size, offset) + pointer_size = size >> 3 + + case pointer_size + when 0 + new_offset = offset + 1 + buf = (size & 0x7).chr << @io.read(offset, 1) + pointer = buf.unpack('n'.freeze)[0] + @pointer_base + when 1 + new_offset = offset + 2 + buf = "\x00".freeze.b << (size & 0x7).chr << @io.read(offset, 2) + pointer = buf.unpack('N'.freeze)[0] + 2048 + @pointer_base + when 2 + new_offset = offset + 3 + buf = (size & 0x7).chr << @io.read(offset, 3) + pointer = buf.unpack('N'.freeze)[0] + 526_336 + @pointer_base + else + new_offset = offset + 4 + buf = @io.read(offset, 4) + pointer = buf.unpack('N'.freeze)[0] + @pointer_base + end + + return pointer, new_offset if @pointer_test + + value, = decode(pointer) + [value, new_offset] + end + + def decode_utf8_string(size, offset) + new_offset = offset + size + buf = @io.read(offset, size) + buf.force_encoding(Encoding::UTF_8) + # We could check it's valid UTF-8 with `valid_encoding?', but for + # performance I do not. + [buf, new_offset] + end + + TYPE_DECODER = { + 1 => :decode_pointer, + 2 => :decode_utf8_string, + 3 => :decode_double, + 4 => :decode_bytes, + 5 => :decode_uint16, + 6 => :decode_uint32, + 7 => :decode_map, + 8 => :decode_int32, + 9 => :decode_uint64, + 10 => :decode_uint128, + 11 => :decode_array, + 14 => :decode_boolean, + 15 => :decode_float, + }.freeze + private_constant :TYPE_DECODER + + public + + # Decode a section of the data section starting at +offset+. + # + # +offset+ is the location of the data structure to decode. + # + # Returns an array where the first element is the decoded value and the + # second is the offset after decoding it. + # + # Throws an exception if there is an error. + def decode(offset) + new_offset = offset + 1 + buf = @io.read(offset, 1) + ctrl_byte = buf.ord + type_num = ctrl_byte >> 5 + type_num, new_offset = read_extended(new_offset) if type_num == 0 + + size, new_offset = size_from_ctrl_byte(ctrl_byte, new_offset, type_num) + # We could check an element exists at `type_num', but for performance I + # don't. + send(TYPE_DECODER[type_num], size, new_offset) + end + + private + + def read_extended(offset) + buf = @io.read(offset, 1) + next_byte = buf.ord + type_num = next_byte + 7 + if type_num < 7 + raise InvalidDatabaseError, + "Something went horribly wrong in the decoder. An extended type resolved to a type number < 8 (#{type_num})" + end + [type_num, offset + 1] + end + + def size_from_ctrl_byte(ctrl_byte, offset, type_num) + size = ctrl_byte & 0x1f + + return size, offset if type_num == 1 + + return size, offset if size < 29 + + if size == 29 + size_bytes = @io.read(offset, 1) + size = 29 + size_bytes.ord + return size, offset + 1 + end + + if size == 30 + size_bytes = @io.read(offset, 2) + size = 285 + size_bytes.unpack('n'.freeze)[0] + return size, offset + 2 + end + + size_bytes = "\x00".freeze.b << @io.read(offset, 3) + size = 65_821 + size_bytes.unpack('N'.freeze)[0] + [size, offset + 3] + end + end + end +end diff --git a/lib/maxmind/db/errors.rb b/lib/maxmind/db/errors.rb new file mode 100644 index 0000000..1ff6f36 --- /dev/null +++ b/lib/maxmind/db/errors.rb @@ -0,0 +1,8 @@ +module MaxMind # :nodoc: + class DB + # An InvalidDatabaseError means the {MaxMind + # DB}[http://maxmind.github.io/MaxMind-DB/] file is corrupt or invalid. + class InvalidDatabaseError < RuntimeError + end + end +end diff --git a/lib/maxmind/db/file_reader.rb b/lib/maxmind/db/file_reader.rb new file mode 100644 index 0000000..06ab115 --- /dev/null +++ b/lib/maxmind/db/file_reader.rb @@ -0,0 +1,37 @@ +require 'maxmind/db/errors' + +module MaxMind # :nodoc: + class DB + class FileReader # :nodoc: + def initialize(filename) + @fh = File.new(filename, 'rb'.freeze) + @size = @fh.size + @mutex = Mutex.new + end + + attr_reader :size + + def close + @fh.close + end + + def read(offset, size) + return ''.freeze.b if size == 0 + + # When we support only Ruby 2.5+, remove this and require pread. + if @fh.respond_to?(:pread) + buf = @fh.pread(size, offset) + else + @mutex.synchronize do + @fh.seek(offset, IO::SEEK_SET) + buf = @fh.read(size) + end + end + + raise InvalidDatabaseError, 'The MaxMind DB file contains bad data'.freeze if buf.nil? || buf.length != size + + buf + end + end + end +end diff --git a/lib/maxmind/db/memory_reader.rb b/lib/maxmind/db/memory_reader.rb new file mode 100644 index 0000000..bfd8e4b --- /dev/null +++ b/lib/maxmind/db/memory_reader.rb @@ -0,0 +1,30 @@ +module MaxMind # :nodoc: + class DB + class MemoryReader # :nodoc: + def initialize(filename, options = {}) + if options[:is_buffer] + @buf = filename + @size = @buf.length + return + end + + @buf = File.read(filename, mode: 'rb'.freeze).freeze + @size = @buf.length + end + + attr_reader :size + + # Override to not show @buf in inspect to avoid showing it in irb. + def inspect + s = "#<#{self.class.name}:0x#{self.class.object_id.to_s(16)} " + s << '@size=' << @size.inspect << '>' + end + + def close; end + + def read(offset, size) + @buf[offset, size] + end + end + end +end diff --git a/lib/maxmind/db/metadata.rb b/lib/maxmind/db/metadata.rb new file mode 100644 index 0000000..2c3287e --- /dev/null +++ b/lib/maxmind/db/metadata.rb @@ -0,0 +1,61 @@ +module MaxMind # :nodoc: + class DB + # Metadata holds metadata about a {MaxMind + # DB}[http://maxmind.github.io/MaxMind-DB/] file. + class Metadata + # The number of nodes in the database. + attr_reader :node_count + + # The bit size of a record in the search tree. + attr_reader :record_size + + # The IP version of the data in the database. A value of 4 means the + # database only supports IPv4. A database with a value of 6 may support + # both IPv4 and IPv6 lookups. + attr_reader :ip_version + + # A string identifying the database type. e.g., "GeoIP2-City". + attr_reader :database_type + + # An array of locale codes supported by the database. + attr_reader :languages + + # The major version number of the binary format used when creating the + # database. + attr_reader :binary_format_major_version + + # The minor version number of the binary format used when creating the + # database. + attr_reader :binary_format_minor_version + + # The Unix epoch for the build time of the database. + attr_reader :build_epoch + + # A hash from locales to text descriptions of the database. + attr_reader :description + + # +m+ is a hash representing the metadata map. + def initialize(map) + @node_count = map['node_count'] + @record_size = map['record_size'] + @ip_version = map['ip_version'] + @database_type = map['database_type'] + @languages = map['languages'] + @binary_format_major_version = map['binary_format_major_version'] + @binary_format_minor_version = map['binary_format_minor_version'] + @build_epoch = map['build_epoch'] + @description = map['description'] + end + + # The size of a node in bytes. + def node_byte_size + @record_size / 4 + end + + # The size of the search tree in bytes. + def search_tree_size + @node_count * node_byte_size + end + end + end +end diff --git a/lib/maxmind/db.rb b/lib/maxmind/db.rb new file mode 100644 index 0000000..f0c305b --- /dev/null +++ b/lib/maxmind/db.rb @@ -0,0 +1,277 @@ +require 'ipaddr' +require 'maxmind/db/decoder' +require 'maxmind/db/errors' +require 'maxmind/db/file_reader.rb' +require 'maxmind/db/memory_reader.rb' +require 'maxmind/db/metadata.rb' + +module MaxMind # :nodoc: + # DB provides a way to read {MaxMind DB + # files}[http://maxmind.github.io/MaxMind-DB/]. + # + # {MaxMind DB}[http://maxmind.github.io/MaxMind-DB/] is a binary file format + # that stores data indexed by IP address subnets (IPv4 or IPv6). + # + # This class is a pure Ruby implementation of a reader for the format. + # + # == Example + # + # require 'maxmind/db' + # + # reader = MaxMind::DB.new('GeoIP2-City.mmdb', mode: MaxMind::DB::MODE_MEMORY) + # + # record = reader.get('1.1.1.1') + # if record.nil? + # puts '1.1.1.1 was not found in the database' + # else + # puts record['country']['iso_code'] + # puts record['country']['names']['en'] + # end + # + # reader.close + # + # == Exceptions + # + # DB raises an InvalidDatabaseError if the database is corrupt or invalid. It + # can raise other exceptions, such as ArgumentError, if other errors occur. + class DB + # Choose the default method to open the database. Currently the default is + # MODE_FILE. + MODE_AUTO = :MODE_AUTO + # Open the database as a regular file and read on demand. + MODE_FILE = :MODE_FILE + # Read the database into memory. This is faster than MODE_FILE but causes + # increased memory use. + MODE_MEMORY = :MODE_MEMORY + # Treat the database parameter as containing a database already read into + # memory. It must be a binary string. This primarily exists for testing. + MODE_PARAM_IS_BUFFER = :MODE_PARAM_IS_BUFFER # :nodoc: + + DATA_SECTION_SEPARATOR_SIZE = 16 + private_constant :DATA_SECTION_SEPARATOR_SIZE + METADATA_START_MARKER = "\xAB\xCD\xEFMaxMind.com".freeze.b.freeze + private_constant :METADATA_START_MARKER + METADATA_START_MARKER_LENGTH = 14 + private_constant :METADATA_START_MARKER_LENGTH + METADATA_MAX_SIZE = 131_072 + private_constant :METADATA_MAX_SIZE + + # Return the metadata associated with the {MaxMind + # DB}[http://maxmind.github.io/MaxMind-DB/] as a Metadata object. + attr_reader :metadata + + # Create a DB. A DB provides a way to read {MaxMind DB + # files}[http://maxmind.github.io/MaxMind-DB/]. If you're performing + # multiple lookups, it's most efficient to create one DB and reuse it. + # + # Once created, the DB is safe to use for lookups from multiple threads. It + # is safe to use after forking only if you use MODE_MEMORY or if your + # version of Ruby supports IO#pread. + # + # Creating the DB may raise an exception if initialization fails. + # + # +database+ is a path to a {MaxMind + # DB}[http://maxmind.github.io/MaxMind-DB/]. + # + # +options+ is an option hash where each key is a symbol. The options + # control the behaviour of the DB. + # + # The available options are: + # + # [+:mode+] defines how to open the database. It may be one of MODE_AUTO, + # MODE_FILE, or MODE_MEMORY. If you don't provide one, DB uses + # MODE_AUTO. Refer to the definition of those constants for an + # explanation of their meaning. + def initialize(database, options = {}) + options[:mode] = MODE_AUTO unless options.key?(:mode) + + case options[:mode] + when MODE_AUTO, MODE_FILE + @io = FileReader.new(database) + when MODE_MEMORY + @io = MemoryReader.new(database) + when MODE_PARAM_IS_BUFFER + @io = MemoryReader.new(database, is_buffer: true) + else + raise ArgumentError, 'Invalid mode'.freeze + end + + begin + @size = @io.size + + metadata_start = find_metadata_start + metadata_decoder = Decoder.new(@io, metadata_start) + metadata_map, = metadata_decoder.decode(metadata_start) + @metadata = Metadata.new(metadata_map) + @decoder = Decoder.new(@io, @metadata.search_tree_size + + DATA_SECTION_SEPARATOR_SIZE) + + # Store copies as instance variables to reduce method calls. + @ip_version = @metadata.ip_version + @node_count = @metadata.node_count + @node_byte_size = @metadata.node_byte_size + @record_size = @metadata.record_size + @search_tree_size = @metadata.search_tree_size + + @ipv4_start = nil + # Find @ipv4_start up front. If we don't, we either have a race to + # get/set it or have to synchronize access. + start_node(0) + rescue StandardError => e + @io.close + raise e + end + end + + # Return the record for the +ip_address+ in the {MaxMind + # DB}[http://maxmind.github.io/MaxMind-DB/]. The record can be one of + # several types and depends on the contents of the database. + # + # If no record is found for +ip_address+, +get+ returns +nil+. + # + # +get+ raises an exception if there is an error performing the lookup. + # + # +ip_address+ is a string in the standard notation. It may be IPv4 or + # IPv6. + def get(ip_address) + ip = IPAddr.new(ip_address) + # We could check the IP has the correct prefix (32 or 128) but I do not + # for performance reasons. + + ip_version = ip.ipv6? ? 6 : 4 + if ip_version == 6 && @ip_version == 4 + raise ArgumentError, + "Error looking up #{ip}. You attempted to look up an IPv6 address in an IPv4-only database." + end + + pointer = find_address_in_tree(ip, ip_version) + return nil if pointer == 0 + + resolve_data_pointer(pointer) + end + + private + + IP_VERSION_TO_BIT_COUNT = { + 4 => 32, + 6 => 128, + }.freeze + private_constant :IP_VERSION_TO_BIT_COUNT + + def find_address_in_tree(ip_address, ip_version) + packed = ip_address.hton + + bit_count = IP_VERSION_TO_BIT_COUNT[ip_version] + node = start_node(bit_count) + + node_count = @node_count + bit_count.times do |i| + break if node >= node_count + + c = packed[i >> 3].ord + bit = 1 & (c >> 7 - (i % 8)) + node = read_node(node, bit) + end + + return 0 if node == node_count + + return node if node > node_count + + raise InvalidDatabaseError, 'Invalid node in search tree'.freeze + end + + def start_node(length) + return 0 if @ip_version != 6 || length == 128 + + return @ipv4_start if @ipv4_start + + node = 0 + 96.times do + break if node >= @metadata.node_count + + node = read_node(node, 0) + end + + @ipv4_start = node + end + + # Read a record from the indicated node. Index indicates whether it's the + # left (0) or right (1) record. + # + # rubocop:disable Metrics/CyclomaticComplexity + def read_node(node_number, index) + base_offset = node_number * @node_byte_size + + if @record_size == 24 + offset = index == 0 ? base_offset : base_offset + 3 + buf = @io.read(offset, 3) + node_bytes = "\x00".freeze.b << buf + # When we support only Ruby 2.4+, we can change String#unpack calls + # that take the first element to String#unpack1. + return node_bytes.unpack('N'.freeze)[0] + end + + if @record_size == 28 + if index == 0 + buf = @io.read(base_offset, 4) + n = buf.unpack('N'.freeze)[0] + last24 = n >> 8 + first4 = (n & 0xf0) << 20 + return first4 | last24 + end + buf = @io.read(base_offset + 3, 4) + return buf.unpack('N'.freeze)[0] & 0x0fffffff + end + + if @record_size == 32 + offset = index == 0 ? base_offset : base_offset + 4 + node_bytes = @io.read(offset, 4) + return node_bytes.unpack('N'.freeze)[0] + end + + raise InvalidDatabaseError, "Unsupported record size: #{@record_size}" + end + # rubocop:enable Metrics/CyclomaticComplexity + + def resolve_data_pointer(pointer) + offset_in_file = pointer - @node_count + @search_tree_size + + if offset_in_file >= @size + raise InvalidDatabaseError, + 'The MaxMind DB file\'s search tree is corrupt'.freeze + end + + data, = @decoder.decode(offset_in_file) + data + end + + def find_metadata_start + metadata_max_size = @size < METADATA_MAX_SIZE ? @size : METADATA_MAX_SIZE + + stop_index = @size - metadata_max_size + index = @size - METADATA_START_MARKER_LENGTH + while index >= stop_index + return index + METADATA_START_MARKER_LENGTH if at_metadata?(index) + + index -= 1 + end + + raise InvalidDatabaseError, + 'Metadata section not found. Is this a valid MaxMind DB file?'.freeze + end + + def at_metadata?(index) + @io.read(index, METADATA_START_MARKER_LENGTH) == METADATA_START_MARKER + end + + public + + # Close the DB and return resources to the system. + # + # There is no useful return value. #close raises an exception if there is + # an error. + def close + @io.close + end + end +end diff --git a/maxmind-db.gemspec b/maxmind-db.gemspec new file mode 100644 index 0000000..29646af --- /dev/null +++ b/maxmind-db.gemspec @@ -0,0 +1,19 @@ +Gem::Specification.new do |s| + s.authors = ['William Storey'] + s.files = Dir['**/*'] + s.name = 'maxmind-db' + s.summary = 'A gem for reading MaxMind DB files.' + s.version = '1.0.0' + + s.description = 'A gem for reading MaxMind DB files. MaxMind DB is a binary file format that stores data indexed by IP address subnets (IPv4 or IPv6).' + s.email = 'wstorey@maxmind.com' + s.homepage = 'https://github.com/maxmind/MaxMind-DB-Reader-ruby' + s.licenses = ['Apache-2.0', 'MIT'] + s.metadata = { + 'bug_tracker_uri' => 'https://github.com/maxmind/MaxMind-DB-Reader-ruby/issues', + 'changelog_uri' => 'https://github.com/maxmind/MaxMind-DB-Reader-ruby/blob/master/CHANGELOG.md', + 'documentation_uri' => 'https://github.com/maxmind/MaxMind-DB-Reader-ruby', + 'homepage_uri' => 'https://github.com/maxmind/MaxMind-DB-Reader-ruby', + 'source_code_uri' => 'https://github.com/maxmind/MaxMind-DB-Reader-ruby', + } +end diff --git a/test/data/LICENSE b/test/data/LICENSE new file mode 100644 index 0000000..f86abbd --- /dev/null +++ b/test/data/LICENSE @@ -0,0 +1,4 @@ +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/ or send a letter to Creative +Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA. diff --git a/test/data/MaxMind-DB-spec.md b/test/data/MaxMind-DB-spec.md new file mode 100644 index 0000000..4d9017b --- /dev/null +++ b/test/data/MaxMind-DB-spec.md @@ -0,0 +1,558 @@ +--- +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 128 bit representation of an IPv6 address. +2. The data section. These are the values returned to the client for a +specific IP address, e.g. "US", "New York", or a more complex map 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 map data structure. This structure is described +later in the spec. Changing a key's data type or removing a key would +constitute a major version change for this spec. + +Except where otherwise specified, each key listed is required for the database +to be considered valid. + +Adding a key constitutes a minor version change. Removing a key or changing +its type constitutes a major 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, the last 4 bits of each pointer are combined into the middle byte. + +#### 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 calculated from the start of the data section, *not* from +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 (see below for details). + +The reason that we subtract the `$node_count` 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. + +So the final formula to determine the offset in the file is: + + $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. + +### 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, 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) + +## 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 + diff --git a/test/data/MaxMind-DB-test-metadata-pointers.mmdb b/test/data/MaxMind-DB-test-metadata-pointers.mmdb new file mode 100644 index 0000000..5705606 Binary files /dev/null and b/test/data/MaxMind-DB-test-metadata-pointers.mmdb differ diff --git a/test/data/README.md b/test/data/README.md new file mode 100644 index 0000000..71d2795 --- /dev/null +++ b/test/data/README.md @@ -0,0 +1,4 @@ +MaxMind 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. diff --git a/test/data/bad-data/README.md b/test/data/bad-data/README.md new file mode 100644 index 0000000..fe886fd --- /dev/null +++ b/test/data/bad-data/README.md @@ -0,0 +1,7 @@ +These 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. diff --git a/test/data/bad-data/libmaxminddb/libmaxminddb-offset-integer-overflow.mmdb b/test/data/bad-data/libmaxminddb/libmaxminddb-offset-integer-overflow.mmdb new file mode 100644 index 0000000..b76f354 Binary files /dev/null and b/test/data/bad-data/libmaxminddb/libmaxminddb-offset-integer-overflow.mmdb differ diff --git a/test/data/bad-data/maxminddb-golang/cyclic-data-structure.mmdb b/test/data/bad-data/maxminddb-golang/cyclic-data-structure.mmdb new file mode 100644 index 0000000..1015cbe Binary files /dev/null and b/test/data/bad-data/maxminddb-golang/cyclic-data-structure.mmdb differ diff --git a/test/data/bad-data/maxminddb-golang/invalid-bytes-length.mmdb b/test/data/bad-data/maxminddb-golang/invalid-bytes-length.mmdb new file mode 100644 index 0000000..8c13018 --- /dev/null +++ b/test/data/bad-data/maxminddb-golang/invalid-bytes-length.mmdb @@ -0,0 +1 @@ +MaxMind.comKdescriptionBen \ No newline at end of file diff --git a/test/data/bad-data/maxminddb-golang/invalid-data-record-offset.mmdb b/test/data/bad-data/maxminddb-golang/invalid-data-record-offset.mmdb new file mode 100644 index 0000000..228294e Binary files /dev/null and b/test/data/bad-data/maxminddb-golang/invalid-data-record-offset.mmdb differ diff --git a/test/data/bad-data/maxminddb-golang/invalid-map-key-length.mmdb b/test/data/bad-data/maxminddb-golang/invalid-map-key-length.mmdb new file mode 100644 index 0000000..23e5906 Binary files /dev/null and b/test/data/bad-data/maxminddb-golang/invalid-map-key-length.mmdb differ diff --git a/test/data/bad-data/maxminddb-golang/invalid-string-length.mmdb b/test/data/bad-data/maxminddb-golang/invalid-string-length.mmdb new file mode 100644 index 0000000..c073c77 --- /dev/null +++ b/test/data/bad-data/maxminddb-golang/invalid-string-length.mmdb @@ -0,0 +1 @@ +Dmap2EarrayDmap3AaAbAcMaxMind.com[binary_format_major_version[binary_format_minor_versionKbuild_epochX2|Mdatabase_type]MaxMind DB Nested Data StructuresKdescription \ No newline at end of file diff --git a/test/data/bad-data/maxminddb-golang/metadata-is-an-uint128.mmdb b/test/data/bad-data/maxminddb-golang/metadata-is-an-uint128.mmdb new file mode 100644 index 0000000..4000d97 --- /dev/null +++ b/test/data/bad-data/maxminddb-golang/metadata-is-an-uint128.mmdb @@ -0,0 +1 @@ +MaxMind.com \ No newline at end of file diff --git a/test/data/bad-data/maxminddb-golang/unexpected-bytes.mmdb b/test/data/bad-data/maxminddb-golang/unexpected-bytes.mmdb new file mode 100644 index 0000000..29b3bc3 Binary files /dev/null and b/test/data/bad-data/maxminddb-golang/unexpected-bytes.mmdb differ diff --git a/test/data/perltidyrc b/test/data/perltidyrc new file mode 100644 index 0000000..b7ed624 --- /dev/null +++ b/test/data/perltidyrc @@ -0,0 +1,12 @@ +--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=" diff --git a/test/data/source-data/GeoIP2-Anonymous-IP-Test.json b/test/data/source-data/GeoIP2-Anonymous-IP-Test.json new file mode 100644 index 0000000..bfe2b25 --- /dev/null +++ b/test/data/source-data/GeoIP2-Anonymous-IP-Test.json @@ -0,0 +1,41 @@ +[ + { + "::1.2.0.0/112" : { + "is_anonymous" : true, + "is_anonymous_vpn" : true + } + }, + { + "::81.2.69.0/120": { + "is_anonymous" : true, + "is_anonymous_vpn" : true, + "is_hosting_provider" : true, + "is_public_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 + } + } +] diff --git a/test/data/source-data/GeoIP2-City-Test.json b/test/data/source-data/GeoIP2-City-Test.json new file mode 100644 index 0000000..9d5e773 --- /dev/null +++ b/test/data/source-data/GeoIP2-City-Test.json @@ -0,0 +1,12852 @@ +[ + { + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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.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, + "is_in_european_union" : true, + "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.7500", + "longitude" : "-1.2500", + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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" + } + } + ] + } + }, + { + "::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, + "is_in_european_union" : true, + "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.5000", + "longitude" : "90.5000", + "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" : 1 + } + } + }, + { + "::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" : "吉林" + } + } + ] + } + } +] diff --git a/test/data/source-data/GeoIP2-Connection-Type-Test.json b/test/data/source-data/GeoIP2-Connection-Type-Test.json new file mode 100644 index 0000000..d022566 --- /dev/null +++ b/test/data/source-data/GeoIP2-Connection-Type-Test.json @@ -0,0 +1,102 @@ +[ + { + "::1.0.0.0/120" : { + "connection_type" : "Dialup" + } + }, + { + "::1.0.1.0/120" : { + "connection_type" : "Cable/DSL" + } + }, + { + "::1.0.2.0/119" : { + "connection_type" : "Dialup" + } + }, + { + "::1.0.4.0/118" : { + "connection_type" : "Dialup" + } + }, + { + "::1.0.8.0/117" : { + "connection_type" : "Dialup" + } + }, + { + "::1.0.16.0/116" : { + "connection_type" : "Dialup" + } + }, + { + "::1.0.32.0/115" : { + "connection_type" : "Dialup" + } + }, + { + "::1.0.64.0/114" : { + "connection_type" : "Dialup" + } + }, + { + "::1.0.128.0/113" : { + "connection_type" : "Dialup" + } + }, + { + "::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" : "Dialup" + } + }, + { + "::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" + } + }, + { + "2003::/24" : { + "connection_type" : "Cable/DSL" + } + } +] diff --git a/test/data/source-data/GeoIP2-Country-Test.json b/test/data/source-data/GeoIP2-Country-Test.json new file mode 100644 index 0000000..b697551 --- /dev/null +++ b/test/data/source-data/GeoIP2-Country-Test.json @@ -0,0 +1,11347 @@ +[ + { + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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" : "欧洲" + } + }, + "location" : { + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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" : "欧洲" + } + }, + "location" : { + "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" : "阿塞拜疆" + } + }, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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" : "英国" + } + }, + "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" : "法国" + } + } + } + }, + { + "::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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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, + "is_in_european_union" : true, + "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" : "美国" + } + }, + "postal" : { + "code" : "98354" + }, + "registered_country" : { + "geoname_id" : 2635167, + "is_in_european_union" : true, + "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" : 1 + } + } + }, + { + "::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" : "菲律宾" + } + }, + "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" + } + } + }, + { + "::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" : "中国" + } + } + } + }, + { + "::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" : "美国" + } + } + } + } +] diff --git a/test/data/source-data/GeoIP2-DensityIncome-Test.json b/test/data/source-data/GeoIP2-DensityIncome-Test.json new file mode 100644 index 0000000..21e5717 --- /dev/null +++ b/test/data/source-data/GeoIP2-DensityIncome-Test.json @@ -0,0 +1,14 @@ +[ + { + "::5.83.124.0/118" : { + "average_income" : 32323, + "population_density" : 1232 + } + }, + { + "::216.160.83.0/120" : { + "average_income" : 24626, + "population_density" : 1341 + } + } +] diff --git a/test/data/source-data/GeoIP2-Domain-Test.json b/test/data/source-data/GeoIP2-Domain-Test.json new file mode 100644 index 0000000..c8baa79 --- /dev/null +++ b/test/data/source-data/GeoIP2-Domain-Test.json @@ -0,0 +1,452 @@ +[ + { + "::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" + } + } +] diff --git a/test/data/source-data/GeoIP2-Enterprise-Test.json b/test/data/source-data/GeoIP2-Enterprise-Test.json new file mode 100644 index 0000000..9e43441 --- /dev/null +++ b/test/data/source-data/GeoIP2-Enterprise-Test.json @@ -0,0 +1,673 @@ +[ + { + "::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, + "is_in_european_union" : true, + "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.7500", + "longitude" : "-1.2500", + "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" : "西伯克郡" + } + } + ] + } + }, + { + "::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.5000", + "longitude" : "90.5000", + "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_", + "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.347800", + "longitude" : "-73.554900", + "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", + "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, + "is_in_european_union" : true, + "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", + "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", + "user_type" : "government" + } + } + }, + { + "::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" : { + "user_type" : "dialup" + } + } + }, + { + "::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" + } + } + }, + { + "::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, + "is_in_european_union" : true, + "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", + "user_type" : "government" + } + } + }, + { + "::212.47.235.81/128" : { + "traits" : { + "is_anonymous_proxy" : true + } + } + }, + { + "::212.47.235.82/128" : { + "traits" : { + "is_satellite_provider" : true + } + } + } +] diff --git a/test/data/source-data/GeoIP2-ISP-Test.json b/test/data/source-data/GeoIP2-ISP-Test.json new file mode 100644 index 0000000..2ef4993 --- /dev/null +++ b/test/data/source-data/GeoIP2-ISP-Test.json @@ -0,0 +1,12585 @@ +[ + { + "::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.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" + } + }, + { + "::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." + } + } +] diff --git a/test/data/source-data/GeoIP2-Precision-Enterprise-Test.json b/test/data/source-data/GeoIP2-Precision-Enterprise-Test.json new file mode 100644 index 0000000..23a6631 --- /dev/null +++ b/test/data/source-data/GeoIP2-Precision-Enterprise-Test.json @@ -0,0 +1,1598 @@ +[ + { + "::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, + "is_in_european_union" : true, + "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.7500", + "longitude" : "-1.2500", + "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" : "西伯克郡" + } + } + ] + } + }, + { + "::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" + } + } + }, + { + "::12.87.118.0/119" : { + "traits" : { + "autonomous_system_number" : 7018, + "isp" : "AT&T Services", + "organization" : "AT&T Worldnet Services" + } + } + }, + { + "::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" + } + } + ] + } + }, + { + "::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", + "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", + "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", + "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.5000", + "longitude" : "90.5000", + "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_", + "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.347800", + "longitude" : "-73.554900", + "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", + "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, + "is_in_european_union" : true, + "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" + } + } + }, + { + "::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, + "is_in_european_union" : true, + "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", + "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", + "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" + } + } + }, + { + "::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", + "user_type" : "business" + } + } + }, + { + "::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" : { + "user_type" : "dialup" + } + } + }, + { + "::188.35.144.0/119" : { + "traits" : { + "organization" : "CityLink Ltd" + } + } + }, + { + "::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" + } + } + }, + { + "::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", + "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, + "is_in_european_union" : true, + "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", + "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" : "日本" + } + } + } + }, + { + "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" : "中国" + } + } + } + }, + { + "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" : "捷克共和国" + } + } + } + }, + { + "::212.47.235.81/128" : { + "traits" : { + "is_anonymous_proxy" : true + } + } + }, + { + "::212.47.235.82/128" : { + "traits" : { + "is_satellite_provider" : true + } + } + }, + { + "::1.9.127.107/128" : { + "traits" : { + "user_type" : "business" + } + } + }, + { + "::102.35.19.0/128" : { + "traits" : { + "user_type" : "cellular" + } + } + } +] diff --git a/test/data/source-data/GeoIP2-User-Count-Test.json b/test/data/source-data/GeoIP2-User-Count-Test.json new file mode 100644 index 0000000..16b5988 --- /dev/null +++ b/test/data/source-data/GeoIP2-User-Count-Test.json @@ -0,0 +1,2824 @@ +[ + { + "::1.0.0.0/111" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::1.2.0.0/119" : { + "ipv4_32" : 0, + "ipv4_24" : 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_32" : 1, + "ipv4_24" : 4 + } + }, + { + "::1.2.3.6/128" : { + "ipv4_32" : 1, + "ipv4_24" : 4 + } + }, + { + "::1.2.3.7/128" : { + "ipv4_24" : 4, + "ipv4_32" : 0 + } + }, + { + "::1.2.3.8/125" : { + "ipv4_32" : 0, + "ipv4_24" : 4 + } + }, + { + "::1.2.3.16/124" : { + "ipv4_32" : 0, + "ipv4_24" : 4 + } + }, + { + "::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_32" : 0, + "ipv4_24" : 4 + } + }, + { + "::1.2.4.0/118" : { + "ipv4_32" : 0, + "ipv4_24" : 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_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::1.2.128.0/113" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::1.3.0.0/112" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::1.4.0.0/110" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::1.8.0.0/109" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::1.16.0.0/108" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::1.32.0.0/107" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::1.64.0.0/106" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::1.128.0.0/105" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::2.0.0.0/103" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::4.0.0.0/102" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::8.0.0.0/103" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::11.0.0.0/104" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::12.0.0.0/102" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::16.0.0.0/100" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::32.0.0.0/99" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::64.0.0.0/99" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::96.0.0.0/102" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::100.0.0.0/106" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::100.128.0.0/105" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::101.0.0.0/104" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::102.0.0.0/103" : { + "ipv4_32" : 0, + "ipv4_24" : 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_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::124.0.0.0/103" : { + "ipv4_32" : 0, + "ipv4_24" : 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_32" : 0, + "ipv4_24" : 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_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::169.240.0.0/109" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::169.248.0.0/110" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::169.252.0.0/111" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::169.255.0.0/112" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::170.0.0.0/103" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::172.0.0.0/108" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::172.32.0.0/107" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::172.64.0.0/106" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::172.128.0.0/105" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::173.0.0.0/104" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::174.0.0.0/103" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::176.0.0.0/100" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::192.0.0.8/125" : { + "ipv4_32" : 0, + "ipv4_24" : 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_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.0.0.128/121" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::192.0.1.0/120" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.0.3.0/120" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::192.0.4.0/118" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.0.8.0/117" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.0.16.0/116" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.0.32.0/115" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.0.64.0/114" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.0.128.0/113" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::192.1.0.0/112" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.2.0.0/111" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.4.0.0/110" : { + "ipv4_32" : 0, + "ipv4_24" : 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_32" : 0, + "ipv4_24" : 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_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.88.98.0/120" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.88.100.0/118" : { + "ipv4_32" : 0, + "ipv4_24" : 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_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.89.0.0/112" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.90.0.0/111" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.92.0.0/110" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.96.0.0/107" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.128.0.0/107" : { + "ipv4_32" : 0, + "ipv4_24" : 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_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.176.0.0/108" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::192.192.0.0/106" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::193.0.0.0/104" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::194.0.0.0/103" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::196.0.0.0/103" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::198.0.0.0/108" : { + "ipv4_32" : 0, + "ipv4_24" : 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_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::198.32.0.0/108" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::198.48.0.0/111" : { + "ipv4_32" : 0, + "ipv4_24" : 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_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::198.51.96.0/118" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::198.51.101.0/120" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::198.51.102.0/119" : { + "ipv4_32" : 0, + "ipv4_24" : 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_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::198.128.0.0/105" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::199.0.0.0/104" : { + "ipv4_32" : 0, + "ipv4_24" : 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_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::203.0.64.0/115" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::203.0.96.0/116" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::203.0.112.0/120" : { + "ipv4_32" : 0, + "ipv4_24" : 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_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::203.1.0.0/112" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::203.2.0.0/111" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::203.4.0.0/110" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::203.8.0.0/109" : { + "ipv4_24" : 0, + "ipv4_32" : 0 + } + }, + { + "::203.16.0.0/108" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::203.32.0.0/107" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::203.64.0.0/106" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::203.128.0.0/105" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::204.0.0.0/102" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::208.0.0.0/100" : { + "ipv4_32" : 0, + "ipv4_24" : 0 + } + }, + { + "::1:0:0:0/80" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "::2:0:0:0/79" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "::4:0:0:0/78" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "::8:0:0:0/77" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "::10:0:0:0/76" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "::20:0:0:0/75" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "::40:0:0:0/74" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "::80:0:0:0/73" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "::100:0:0:0/72" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "::200:0:0:0/71" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "::400:0:0:0/70" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "::800:0:0:0/69" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "::1000:0:0:0/68" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "::2000:0:0:0/67" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "::4000:0:0:0/66" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "::8000:0:0:0/65" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "0:0:0:1::/64" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "0:0:0:2::/63" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "0:0:0:4::/62" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "0:0:0:8::/61" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "0:0:0:10::/60" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "0:0:0:20::/59" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "0:0:0:40::/58" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "0:0:0:80::/57" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "0:0:0:100::/56" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "0:0:0:200::/55" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "0:0:0:400::/54" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "0:0:0:800::/53" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "0:0:0:1000::/52" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 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_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "0:0:2::/47" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "0:0:4::/46" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "0:0:8::/45" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "0:0:10::/44" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "0:0:20::/43" : { + "ipv6_48" : 0, + "ipv6_32" : 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_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "0:0:200::/39" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "0:0:400::/38" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "0:0:800::/37" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "0:0:1000::/36" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "0:0:2000::/35" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "0:0:4000::/34" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "0:0:8000::/33" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "0:1::/32" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "0:2::/31" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "0:4::/30" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "0:8::/29" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "0:10::/28" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "0:20::/27" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "0:40::/26" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "0:80::/25" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "0:100::/24" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "0:200::/23" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "0:400::/22" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "0:800::/21" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "0:1000::/20" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "0:2000::/19" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "0:4000::/18" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "0:8000::/17" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "1::/16" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "2::/15" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "4::/14" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "8::/13" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 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_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "80::/9" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "100:0:0:1::/64" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "100:0:0:2::/63" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "100:0:0:4::/62" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "100:0:0:8::/61" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "100:0:0:10::/60" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "100:0:0:20::/59" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "100:0:0:40::/58" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "100:0:0:80::/57" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "100:0:0:100::/56" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "100:0:0:200::/55" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "100:0:0:400::/54" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "100:0:0:800::/53" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "100:0:0:1000::/52" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "100:0:0:2000::/51" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "100:0:0:4000::/50" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "100:0:0:8000::/49" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "100:0:1::/48" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "100:0:2::/47" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "100:0:4::/46" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "100:0:8::/45" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "100:0:10::/44" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "100:0:20::/43" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "100:0:40::/42" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "100:0:80::/41" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "100:0:100::/40" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "100:0:200::/39" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "100:0:400::/38" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "100:0:800::/37" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "100:0:1000::/36" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "100:0:2000::/35" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "100:0:4000::/34" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "100:0:8000::/33" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "100:1::/32" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "100:2::/31" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "100:4::/30" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "100:8::/29" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "100:10::/28" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "100:20::/27" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "100:40::/26" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "100:80::/25" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "100:100::/24" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "100:200::/23" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "100:400::/22" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "100:800::/21" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "100:1000::/20" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "100:2000::/19" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "100:4000::/18" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "100:8000::/17" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "101::/16" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "102::/15" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "104::/14" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "108::/13" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "110::/12" : { + "ipv6_48" : 0, + "ipv6_32" : 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_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "200::/7" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "400::/6" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "800::/5" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "1000::/4" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "2000::/16" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "2001:200::/23" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "2001:400::/22" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:800::/22" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:c00::/24" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "2001:d00::/25" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:d80::/27" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "2001:da0::/28" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:db0::/29" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "2001:db9::/32" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:dba::/31" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "2001:dbc::/30" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "2001:dc0::/26" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "2001:e00::/23" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:1000::/20" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "2001:2000::/19" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "2001:4000::/18" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "2001:8000::/18" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:c000::/19" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "2001:e000::/21" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "2001:e800::/22" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:ec00::/24" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:ed00::/25" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:ed80::/27" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "2001:eda0::/28" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "2001:edb0::/29" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:edb8::/48" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 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_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 1 + } + }, + { + "2001:edb8:1:4::/62" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 1 + } + }, + { + "2001:edb8:1:8::/61" : { + "ipv6_32" : 5, + "ipv6_48" : 1, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:1:10::/60" : { + "ipv6_64" : 0, + "ipv6_48" : 1, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:1:20::/59" : { + "ipv6_48" : 1, + "ipv6_32" : 5, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:1:40::/58" : { + "ipv6_32" : 5, + "ipv6_48" : 1, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:1:80::/57" : { + "ipv6_48" : 1, + "ipv6_32" : 5, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:1:100::/56" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 1 + } + }, + { + "2001:edb8:1:200::/55" : { + "ipv6_64" : 0, + "ipv6_48" : 1, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:1:400::/54" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 1 + } + }, + { + "2001:edb8:1:800::/53" : { + "ipv6_64" : 0, + "ipv6_48" : 1, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:1:1000::/52" : { + "ipv6_64" : 0, + "ipv6_48" : 1, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:1:2000::/51" : { + "ipv6_64" : 0, + "ipv6_48" : 1, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:1:4000::/50" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 1 + } + }, + { + "2001:edb8:1:8000::/49" : { + "ipv6_48" : 1, + "ipv6_32" : 5, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:2::/47" : { + "ipv6_32" : 5, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:4::/46" : { + "ipv6_48" : 0, + "ipv6_32" : 5, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:8::/45" : { + "ipv6_48" : 0, + "ipv6_32" : 5, + "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_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:100::/40" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:200::/39" : { + "ipv6_48" : 0, + "ipv6_32" : 5, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:400::/38" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 0 + } + }, + { + "2001:edb8:800::/37" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:1000::/36" : { + "ipv6_48" : 0, + "ipv6_32" : 5, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:2000::/35" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 0 + } + }, + { + "2001:edb8:4000::/34" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 0 + } + }, + { + "2001:edb8:8000::/38" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 0 + } + }, + { + "2001:edb8:8400::/40" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 0 + } + }, + { + "2001:edb8:8500::/41" : { + "ipv6_32" : 5, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:8580::/43" : { + "ipv6_48" : 0, + "ipv6_32" : 5, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:85a0::/47" : { + "ipv6_48" : 0, + "ipv6_32" : 5, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:85a2::/48" : { + "ipv6_48" : 0, + "ipv6_32" : 5, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:85a3::/64" : { + "ipv6_48" : 4, + "ipv6_32" : 5, + "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_64" : 0, + "ipv6_48" : 4, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:85a3:8::/61" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 4 + } + }, + { + "2001:edb8:85a3:10::/60" : { + "ipv6_48" : 4, + "ipv6_32" : 5, + "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_64" : 0, + "ipv6_48" : 4, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:85a3:100::/56" : { + "ipv6_32" : 5, + "ipv6_48" : 4, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:85a3:200::/55" : { + "ipv6_64" : 0, + "ipv6_48" : 4, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:85a3:400::/54" : { + "ipv6_64" : 0, + "ipv6_48" : 4, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:85a3:800::/53" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 4 + } + }, + { + "2001:edb8:85a3:1000::/52" : { + "ipv6_64" : 0, + "ipv6_48" : 4, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:85a3:2000::/51" : { + "ipv6_48" : 4, + "ipv6_32" : 5, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:85a3:4000::/50" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 4 + } + }, + { + "2001:edb8:85a3:8000::/49" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 4 + } + }, + { + "2001:edb8:85a4::/46" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 0 + } + }, + { + "2001:edb8:85a8::/45" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 0 + } + }, + { + "2001:edb8:85b0::/44" : { + "ipv6_48" : 0, + "ipv6_32" : 5, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:85c0::/42" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:8600::/39" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 0 + } + }, + { + "2001:edb8:8800::/37" : { + "ipv6_48" : 0, + "ipv6_32" : 5, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:9000::/36" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 0 + } + }, + { + "2001:edb8:a000::/35" : { + "ipv6_32" : 5, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:c000::/36" : { + "ipv6_48" : 0, + "ipv6_32" : 5, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:d000::/37" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:d800::/38" : { + "ipv6_32" : 5, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:dc00::/39" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:de00::/41" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:de80::/43" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:dea0::/45" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 0 + } + }, + { + "2001:edb8:dea8::/46" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:deac::/48" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 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_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 2 + } + }, + { + "2001:edb8:dead:dc00::/55" : { + "ipv6_32" : 5, + "ipv6_48" : 2, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:dead:de00::/57" : { + "ipv6_64" : 0, + "ipv6_48" : 2, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:dead:de80::/59" : { + "ipv6_64" : 0, + "ipv6_48" : 2, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:dead:dea0::/61" : { + "ipv6_48" : 2, + "ipv6_32" : 5, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:dead:dea8::/62" : { + "ipv6_32" : 5, + "ipv6_48" : 2, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:dead:deac::/64" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 2 + } + }, + { + "2001:edb8:dead:dead::/64" : { + "ipv6_48" : 2, + "ipv6_32" : 5, + "ipv6_64" : 2 + } + }, + { + "2001:edb8:dead:deae::/63" : { + "ipv6_32" : 5, + "ipv6_48" : 2, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:dead:deb0::/60" : { + "ipv6_64" : 0, + "ipv6_32" : 5, + "ipv6_48" : 2 + } + }, + { + "2001:edb8:dead:dec0::/58" : { + "ipv6_64" : 0, + "ipv6_48" : 2, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:dead:df00::/56" : { + "ipv6_48" : 2, + "ipv6_32" : 5, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:dead:e000::/51" : { + "ipv6_32" : 5, + "ipv6_48" : 2, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:deae::/47" : { + "ipv6_48" : 0, + "ipv6_32" : 5, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:deb0::/44" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 5 + } + }, + { + "2001:edb8:dec0::/42" : { + "ipv6_32" : 5, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:df00::/40" : { + "ipv6_48" : 0, + "ipv6_32" : 5, + "ipv6_64" : 0 + } + }, + { + "2001:edb8:e000::/35" : { + "ipv6_32" : 5, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:edb9::/32" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "2001:edba::/31" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "2001:edbc::/30" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:edc0::/26" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "2001:ee00::/23" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "2001:f000::/20" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "2003::/16" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "2004::/14" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "2008::/13" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "2010::/12" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "2020::/11" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "2040::/10" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "2080::/9" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "2100::/8" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "2200::/7" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "2400::/6" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "2800::/5" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "3000::/4" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "4000::/2" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + }, + { + "8000::/2" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "c000::/3" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "e000::/4" : { + "ipv6_64" : 0, + "ipv6_48" : 0, + "ipv6_32" : 0 + } + }, + { + "f000::/5" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "f800::/6" : { + "ipv6_32" : 0, + "ipv6_48" : 0, + "ipv6_64" : 0 + } + }, + { + "fe00::/9" : { + "ipv6_48" : 0, + "ipv6_32" : 0, + "ipv6_64" : 0 + } + }, + { + "fec0::/10" : { + "ipv6_64" : 0, + "ipv6_32" : 0, + "ipv6_48" : 0 + } + } +] diff --git a/test/data/source-data/GeoLite2-ASN-Test.json b/test/data/source-data/GeoLite2-ASN-Test.json new file mode 100644 index 0000000..94b733b --- /dev/null +++ b/test/data/source-data/GeoLite2-ASN-Test.json @@ -0,0 +1,37 @@ +[ + { + "::1.128.0.0/107" : { + "autonomous_system_number" : 1221, + "autonomous_system_organization" : "Telstra Pty Ltd" + } + }, + { + "::12.81.92.0/118" : { + "autonomous_system_number" : 7018, + "autonomous_system_organization" : "AT&T Services" + } + }, + { + "::12.81.96.0/115" : { + "autonomous_system_number" : 7018 + } + }, + { + "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." + } + } +] diff --git a/test/data/source-data/README b/test/data/source-data/README new file mode 100644 index 0000000..0ab494f --- /dev/null +++ b/test/data/source-data/README @@ -0,0 +1,15 @@ +All 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. diff --git a/test/data/test-data/GeoIP2-Anonymous-IP-Test.mmdb b/test/data/test-data/GeoIP2-Anonymous-IP-Test.mmdb new file mode 100644 index 0000000..d1ca49f Binary files /dev/null and b/test/data/test-data/GeoIP2-Anonymous-IP-Test.mmdb differ diff --git a/test/data/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb b/test/data/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb new file mode 100644 index 0000000..35a987e Binary files /dev/null and b/test/data/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb differ diff --git a/test/data/test-data/GeoIP2-City-Test-Invalid-Node-Count.mmdb b/test/data/test-data/GeoIP2-City-Test-Invalid-Node-Count.mmdb new file mode 100644 index 0000000..9be826b Binary files /dev/null and b/test/data/test-data/GeoIP2-City-Test-Invalid-Node-Count.mmdb differ diff --git a/test/data/test-data/GeoIP2-City-Test.mmdb b/test/data/test-data/GeoIP2-City-Test.mmdb new file mode 100644 index 0000000..2e7c95c Binary files /dev/null and b/test/data/test-data/GeoIP2-City-Test.mmdb differ diff --git a/test/data/test-data/GeoIP2-Connection-Type-Test.mmdb b/test/data/test-data/GeoIP2-Connection-Type-Test.mmdb new file mode 100644 index 0000000..70a936a Binary files /dev/null and b/test/data/test-data/GeoIP2-Connection-Type-Test.mmdb differ diff --git a/test/data/test-data/GeoIP2-Country-Test.mmdb b/test/data/test-data/GeoIP2-Country-Test.mmdb new file mode 100644 index 0000000..18823c1 Binary files /dev/null and b/test/data/test-data/GeoIP2-Country-Test.mmdb differ diff --git a/test/data/test-data/GeoIP2-DensityIncome-Test.mmdb b/test/data/test-data/GeoIP2-DensityIncome-Test.mmdb new file mode 100644 index 0000000..e9bc65b Binary files /dev/null and b/test/data/test-data/GeoIP2-DensityIncome-Test.mmdb differ diff --git a/test/data/test-data/GeoIP2-Domain-Test.mmdb b/test/data/test-data/GeoIP2-Domain-Test.mmdb new file mode 100644 index 0000000..b2b354d Binary files /dev/null and b/test/data/test-data/GeoIP2-Domain-Test.mmdb differ diff --git a/test/data/test-data/GeoIP2-Enterprise-Test.mmdb b/test/data/test-data/GeoIP2-Enterprise-Test.mmdb new file mode 100644 index 0000000..7ba857d Binary files /dev/null and b/test/data/test-data/GeoIP2-Enterprise-Test.mmdb differ diff --git a/test/data/test-data/GeoIP2-ISP-Test.mmdb b/test/data/test-data/GeoIP2-ISP-Test.mmdb new file mode 100644 index 0000000..01c17be Binary files /dev/null and b/test/data/test-data/GeoIP2-ISP-Test.mmdb differ diff --git a/test/data/test-data/GeoIP2-Precision-Enterprise-Test.mmdb b/test/data/test-data/GeoIP2-Precision-Enterprise-Test.mmdb new file mode 100644 index 0000000..25c74ba Binary files /dev/null and b/test/data/test-data/GeoIP2-Precision-Enterprise-Test.mmdb differ diff --git a/test/data/test-data/GeoIP2-User-Count-Test.mmdb b/test/data/test-data/GeoIP2-User-Count-Test.mmdb new file mode 100644 index 0000000..a8a9d45 Binary files /dev/null and b/test/data/test-data/GeoIP2-User-Count-Test.mmdb differ diff --git a/test/data/test-data/GeoLite2-ASN-Test.mmdb b/test/data/test-data/GeoLite2-ASN-Test.mmdb new file mode 100644 index 0000000..bba876c Binary files /dev/null and b/test/data/test-data/GeoLite2-ASN-Test.mmdb differ diff --git a/test/data/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb b/test/data/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb new file mode 100644 index 0000000..8699ad1 Binary files /dev/null and b/test/data/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb differ diff --git a/test/data/test-data/MaxMind-DB-string-value-entries.mmdb b/test/data/test-data/MaxMind-DB-string-value-entries.mmdb new file mode 100644 index 0000000..6c638b9 Binary files /dev/null and b/test/data/test-data/MaxMind-DB-string-value-entries.mmdb differ diff --git a/test/data/test-data/MaxMind-DB-test-broken-pointers-24.mmdb b/test/data/test-data/MaxMind-DB-test-broken-pointers-24.mmdb new file mode 100644 index 0000000..7487573 Binary files /dev/null and b/test/data/test-data/MaxMind-DB-test-broken-pointers-24.mmdb differ diff --git a/test/data/test-data/MaxMind-DB-test-broken-search-tree-24.mmdb b/test/data/test-data/MaxMind-DB-test-broken-search-tree-24.mmdb new file mode 100644 index 0000000..2f2c352 Binary files /dev/null and b/test/data/test-data/MaxMind-DB-test-broken-search-tree-24.mmdb differ diff --git a/test/data/test-data/MaxMind-DB-test-decoder.mmdb b/test/data/test-data/MaxMind-DB-test-decoder.mmdb new file mode 100644 index 0000000..2bd789f Binary files /dev/null and b/test/data/test-data/MaxMind-DB-test-decoder.mmdb differ diff --git a/test/data/test-data/MaxMind-DB-test-ipv4-24.mmdb b/test/data/test-data/MaxMind-DB-test-ipv4-24.mmdb new file mode 100644 index 0000000..115215c Binary files /dev/null and b/test/data/test-data/MaxMind-DB-test-ipv4-24.mmdb differ diff --git a/test/data/test-data/MaxMind-DB-test-ipv4-28.mmdb b/test/data/test-data/MaxMind-DB-test-ipv4-28.mmdb new file mode 100644 index 0000000..00740bf Binary files /dev/null and b/test/data/test-data/MaxMind-DB-test-ipv4-28.mmdb differ diff --git a/test/data/test-data/MaxMind-DB-test-ipv4-32.mmdb b/test/data/test-data/MaxMind-DB-test-ipv4-32.mmdb new file mode 100644 index 0000000..031cc49 Binary files /dev/null and b/test/data/test-data/MaxMind-DB-test-ipv4-32.mmdb differ diff --git a/test/data/test-data/MaxMind-DB-test-ipv6-24.mmdb b/test/data/test-data/MaxMind-DB-test-ipv6-24.mmdb new file mode 100644 index 0000000..416bf8a Binary files /dev/null and b/test/data/test-data/MaxMind-DB-test-ipv6-24.mmdb differ diff --git a/test/data/test-data/MaxMind-DB-test-ipv6-28.mmdb b/test/data/test-data/MaxMind-DB-test-ipv6-28.mmdb new file mode 100644 index 0000000..ad5b734 Binary files /dev/null and b/test/data/test-data/MaxMind-DB-test-ipv6-28.mmdb differ diff --git a/test/data/test-data/MaxMind-DB-test-ipv6-32.mmdb b/test/data/test-data/MaxMind-DB-test-ipv6-32.mmdb new file mode 100644 index 0000000..02a828d Binary files /dev/null and b/test/data/test-data/MaxMind-DB-test-ipv6-32.mmdb differ diff --git a/test/data/test-data/MaxMind-DB-test-metadata-pointers.mmdb b/test/data/test-data/MaxMind-DB-test-metadata-pointers.mmdb new file mode 100644 index 0000000..1a48095 Binary files /dev/null and b/test/data/test-data/MaxMind-DB-test-metadata-pointers.mmdb differ diff --git a/test/data/test-data/MaxMind-DB-test-mixed-24.mmdb b/test/data/test-data/MaxMind-DB-test-mixed-24.mmdb new file mode 100644 index 0000000..9d53fd4 Binary files /dev/null and b/test/data/test-data/MaxMind-DB-test-mixed-24.mmdb differ diff --git a/test/data/test-data/MaxMind-DB-test-mixed-28.mmdb b/test/data/test-data/MaxMind-DB-test-mixed-28.mmdb new file mode 100644 index 0000000..384ebc3 Binary files /dev/null and b/test/data/test-data/MaxMind-DB-test-mixed-28.mmdb differ diff --git a/test/data/test-data/MaxMind-DB-test-mixed-32.mmdb b/test/data/test-data/MaxMind-DB-test-mixed-32.mmdb new file mode 100644 index 0000000..b28624b Binary files /dev/null and b/test/data/test-data/MaxMind-DB-test-mixed-32.mmdb differ diff --git a/test/data/test-data/MaxMind-DB-test-nested.mmdb b/test/data/test-data/MaxMind-DB-test-nested.mmdb new file mode 100644 index 0000000..4b670eb Binary files /dev/null and b/test/data/test-data/MaxMind-DB-test-nested.mmdb differ diff --git a/test/data/test-data/README.md b/test/data/test-data/README.md new file mode 100644 index 0000000..c63a243 --- /dev/null +++ b/test/data/test-data/README.md @@ -0,0 +1,26 @@ +The write-test-dbs 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/master/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/master/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/master/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. diff --git a/test/data/test-data/maps-with-pointers.raw b/test/data/test-data/maps-with-pointers.raw new file mode 100644 index 0000000..c9b2501 Binary files /dev/null and b/test/data/test-data/maps-with-pointers.raw differ diff --git a/test/data/test-data/write-test-data.pl b/test/data/test-data/write-test-data.pl new file mode 100755 index 0000000..3022dc9 --- /dev/null +++ b/test/data/test-data/write-test-data.pl @@ -0,0 +1,620 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use autodie; +use utf8; + +use Carp qw( croak ); +use Cwd qw( abs_path ); +use File::Basename qw( dirname ); +use File::Slurper qw( read_binary write_binary ); +use Cpanel::JSON::XS qw( decode_json ); +use Math::Int128 qw( 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_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, + ); + + sub write_decoder_test_db { + my $writer = 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 @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, + ); + + open my $fh, '>', "$Dir/MaxMind-DB-test-decoder.mmdb"; + $writer->write_tree($fh); + close $fh; + + return; + } +} + +{ + 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-User-Count'], + ['GeoLite2-ASN'], + ); +} + +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_satellite_provider => 'boolean', + is_tor_exit_node => 'boolean', + iso_code => 'utf8_string', + isp => 'utf8_string', + latitude => 'double', + location => 'map', + longitude => 'double', + metro_code => 'uint16', + names => 'map', + organization => 'utf8_string', + population_density => 'uint32', + postal => 'map', + registered_country => 'map', + represented_country => 'map', + 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, '>', '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, '>', 'MaxMind-DB-test-metadata-pointers.mmdb'; + + $writer->write_tree($fh); + + close $fh; +} + +main(); diff --git a/test/data/tidyall.ini b/test/data/tidyall.ini new file mode 100644 index 0000000..ae979b8 --- /dev/null +++ b/test/data/tidyall.ini @@ -0,0 +1,5 @@ +[PerlTidy] +select = **/*.{pl,pm,t} + +[JSON] +select = **/*.json diff --git a/test/mmdb_util.rb b/test/mmdb_util.rb new file mode 100644 index 0000000..67aa4c7 --- /dev/null +++ b/test/mmdb_util.rb @@ -0,0 +1,24 @@ +class MMDBUtil # :nodoc: + def self.make_metadata_map(record_size) + # Map + "\xe9".b + + # node_count => 0 + "\x4anode_count\xc0".b + + # record_size => 28 would be \xa1\x1c + "\x4brecord_size\xa1".b + record_size.chr.b + + # ip_version => 4 + "\x4aip_version\xa1\x04".b + + # database_type => 'test' + "\x4ddatabase_type\x44test".b + + # languages => ['en'] + "\x49languages\x01\x04\x42en".b + + # binary_format_major_version => 2 + "\x5bbinary_format_major_version\xa1\x02".b + + # binary_format_minor_version => 0 + "\x5bbinary_format_minor_version\xa0".b + + # build_epoch => 0 + "\x4bbuild_epoch\x00\x02".b + + # description => 'hi' + "\x4bdescription\x42hi".b + end +end diff --git a/test/test_decoder.rb b/test/test_decoder.rb new file mode 100644 index 0000000..a72d8f9 --- /dev/null +++ b/test/test_decoder.rb @@ -0,0 +1,241 @@ +require 'maxmind/db' +require 'minitest/autorun' +require 'mmdb_util' + +class DecoderTest < Minitest::Test # :nodoc: + def test_arrays + arrays = { + "\x00\x04".b => [], + "\x01\x04\x43\x46\x6f\x6f".b => ['Foo'], + "\x02\x04\x43\x46\x6f\x6f\x43\xe4\xba\xba".b => %w[Foo 人], + } + validate_type_decoding('arrays', arrays) + end + + def test_boolean + booleans = { + "\x00\x07".b => false, + "\x01\x07".b => true, + } + validate_type_decoding('booleans', booleans) + end + + def test_bytes + tests = { + "\x83\xE4\xBA\xBA".b => '人'.b, + } + validate_type_decoding('bytes', tests) + end + + def test_double + doubles = { + "\x68\x00\x00\x00\x00\x00\x00\x00\x00".b => 0.0, + "\x68\x3F\xE0\x00\x00\x00\x00\x00\x00".b => 0.5, + "\x68\x40\x09\x21\xFB\x54\x44\x2E\xEA".b => 3.14159265359, + "\x68\x40\x5E\xC0\x00\x00\x00\x00\x00".b => 123.0, + "\x68\x41\xD0\x00\x00\x00\x07\xF8\xF4".b => 1_073_741_824.12457, + "\x68\xBF\xE0\x00\x00\x00\x00\x00\x00".b => -0.5, + "\x68\xC0\x09\x21\xFB\x54\x44\x2E\xEA".b => -3.14159265359, + "\x68\xC1\xD0\x00\x00\x00\x07\xF8\xF4".b => -1_073_741_824.12457, + } + validate_type_decoding('double', doubles) + end + + def test_float + floats = { + "\x04\x08\x00\x00\x00\x00".b => 0.0, + "\x04\x08\x3F\x80\x00\x00".b => 1.0, + "\x04\x08\x3F\x8C\xCC\xCD".b => 1.1, + "\x04\x08\x40\x48\xF5\xC3".b => 3.14, + "\x04\x08\x46\x1C\x3F\xF6".b => 9999.99, + "\x04\x08\xBF\x80\x00\x00".b => -1.0, + "\x04\x08\xBF\x8C\xCC\xCD".b => -1.1, + "\x04\x08\xC0\x48\xF5\xC3".b => -3.14, + "\x04\x08\xC6\x1C\x3F\xF6".b => -9999.99 + } + validate_type_decoding('float', floats) + end + + def test_int32 + int32 = { + "\x00\x01".b => 0, + "\x04\x01\xff\xff\xff\xff".b => -1, + "\x01\x01\xff".b => 255, + "\x04\x01\xff\xff\xff\x01".b => -255, + "\x02\x01\x01\xf4".b => 500, + "\x04\x01\xff\xff\xfe\x0c".b => -500, + "\x02\x01\xff\xff".b => 65_535, + "\x04\x01\xff\xff\x00\x01".b => -65_535, + "\x03\x01\xff\xff\xff".b => 16_777_215, + "\x04\x01\xff\x00\x00\x01".b => -16_777_215, + "\x04\x01\x7f\xff\xff\xff".b => 2_147_483_647, + "\x04\x01\x80\x00\x00\x01".b => -2_147_483_647, + } + validate_type_decoding('int32', int32) + end + + def test_map + maps = { + "\xe0".b => {}, + "\xe1\x42\x65\x6e\x43\x46\x6f\x6f".b => { + 'en' => 'Foo' + }, + "\xe2\x42\x65\x6e\x43\x46\x6f\x6f\x42\x7a\x68\x43\xe4\xba\xba".b => { + 'en' => 'Foo', + 'zh' => '人' + }, + "\xe1\x44\x6e\x61\x6d\x65\xe2\x42\x65\x6e".b + + "\x43\x46\x6f\x6f\x42\x7a\x68\x43\xe4\xba\xba".b => { + 'name' => { + 'en' => 'Foo', + 'zh' => '人' + } + }, + "\xe1\x49\x6c\x61\x6e\x67\x75\x61\x67\x65\x73".b + + "\x02\x04\x42\x65\x6e\x42\x7a\x68".b => { + 'languages' => %w[en zh] + }, + MMDBUtil.make_metadata_map(28) => { + 'node_count' => 0, + 'record_size' => 28, + 'ip_version' => 4, + 'database_type' => 'test', + 'languages' => ['en'], + 'binary_format_major_version' => 2, + 'binary_format_minor_version' => 0, + 'build_epoch' => 0, + 'description' => 'hi', + }, + } + validate_type_decoding('maps', maps) + end + + def test_pointer + pointers = { + "\x20\x00".b => 0, + "\x20\x05".b => 5, + "\x20\x0a".b => 10, + "\x23\xff".b => 1023, + "\x28\x03\xc9".b => 3017, + "\x2f\xf7\xfb".b => 524_283, + "\x2f\xff\xff".b => 526_335, + "\x37\xf7\xf7\xfe".b => 134_217_726, + "\x37\xff\xff\xff".b => 134_744_063, + "\x38\x7f\xff\xff\xff".b => 2_147_483_647, + "\x38\xff\xff\xff\xff".b => 4_294_967_295, + } + validate_type_decoding('pointers', pointers) + end + + # rubocop:disable Style/ClassVars + @@strings = { + "\x40".b => '', + "\x41\x31".b => '1', + "\x43\xE4\xBA\xBA".b => '人', + "\x5b\x31\x32\x33\x34".b + + "\x35\x36\x37\x38\x39\x30\x31\x32\x33\x34\x35".b + + "\x36\x37\x38\x39\x30\x31\x32\x33\x34\x35\x36\x37".b => + '123456789012345678901234567', + "\x5c\x31\x32\x33\x34".b + + "\x35\x36\x37\x38\x39\x30\x31\x32\x33\x34\x35".b + + "\x36\x37\x38\x39\x30\x31\x32\x33\x34\x35\x36".b + + "\x37\x38".b => '1234567890123456789012345678', + "\x5d\x00\x31\x32\x33".b + + "\x34\x35\x36\x37\x38\x39\x30\x31\x32\x33\x34".b + + "\x35\x36\x37\x38\x39\x30\x31\x32\x33\x34\x35".b + + "\x36\x37\x38\x39".b => '12345678901234567890123456789', + "\x5d\x01\x31\x32\x33".b + + "\x34\x35\x36\x37\x38\x39\x30\x31\x32\x33\x34".b + + "\x35\x36\x37\x38\x39\x30\x31\x32\x33\x34\x35".b + + "\x36\x37\x38\x39\x30".b => '123456789012345678901234567890', + "\x5e\x00\xd7".b + "\x78".b * 500 => 'x' * 500, + "\x5e\x06\xb3".b + "\x78".b * 2000 => 'x' * 2000, + "\x5f\x00\x10\x53".b + "\x78".b * 70_000 => 'x' * 70_000, + } + # rubocop:enable Style/ClassVars + + def test_string + values = validate_type_decoding('string', @@strings) + values.each do |s| + assert_equal(Encoding::UTF_8, s.encoding) + end + end + + def test_uint16 + uint16 = { + "\xa0".b => 0, + "\xa1\xff".b => 255, + "\xa2\x01\xf4".b => 500, + "\xa2\x2a\x78".b => 10_872, + "\xa2\xff\xff".b => 65_535, + } + validate_type_decoding('uint16', uint16) + end + + def test_uint32 + uint32 = { + "\xc0".b => 0, + "\xc1\xff".b => 255, + "\xc2\x01\xf4".b => 500, + "\xc2\x2a\x78".b => 10_872, + "\xc2\xff\xff".b => 65_535, + "\xc3\xff\xff\xff".b => 16_777_215, + "\xc4\xff\xff\xff\xff".b => 4_294_967_295, + } + validate_type_decoding('uint32', uint32) + end + + def generate_large_uint(bits) + ctrl_byte = bits == 64 ? "\x02".b : "\x03".b + uints = { + "\x00".b + ctrl_byte => 0, + "\x02".b + ctrl_byte + "\x01\xf4".b => 500, + "\x02".b + ctrl_byte + "\x2a\x78".b => 10_872, + } + (bits / 8 + 1).times do |power| + expected = 2**(8 * power) - 1 + input = [power].pack('C') + ctrl_byte + "\xff".b * power + uints[input] = expected + end + uints + end + + def test_uint64 + validate_type_decoding('uint64', generate_large_uint(64)) + end + + def test_uint128 + validate_type_decoding('uint128', generate_large_uint(128)) + end + + def validate_type_decoding(type, tests) + values = [] + tests.each do |input, expected| + values << check_decoding(type, input, expected) + end + values + end + + def check_decoding(type, input, expected, name = nil) + name ||= expected + + io = MaxMind::DB::MemoryReader.new(input, is_buffer: true) + + pointer_base = 0 + pointer_test = true + decoder = MaxMind::DB::Decoder.new(io, pointer_base, + pointer_test) + + offset = 0 + r = decoder.decode(offset) + + if %w[float double].include?(type) + assert_in_delta(expected, r[0], 0.001, name) + else + assert_equal(expected, r[0], name) + end + + io.close + r[0] + end +end diff --git a/test/test_reader.rb b/test/test_reader.rb new file mode 100644 index 0000000..36c4ac5 --- /dev/null +++ b/test/test_reader.rb @@ -0,0 +1,415 @@ +require 'maxmind/db' +require 'minitest/autorun' +require 'mmdb_util' + +class ReaderTest < Minitest::Test # :nodoc: + def test_reader + modes = [ + MaxMind::DB::MODE_FILE, + MaxMind::DB::MODE_MEMORY, + ] + + modes.each do |mode| + [24, 28, 32].each do |record_size| + [4, 6].each do |ip_version| + filename = 'test/data/test-data/MaxMind-DB-test-ipv' + + ip_version.to_s + '-' + record_size.to_s + '.mmdb' + reader = MaxMind::DB.new(filename, mode: mode) + check_metadata(reader, ip_version, record_size) + if ip_version == 4 + check_ipv4(reader, filename) + else + check_ipv6(reader, filename) + end + reader.close + end + end + end + end + + def test_decoder + reader = MaxMind::DB.new( + 'test/data/test-data/MaxMind-DB-test-decoder.mmdb' + ) + record = reader.get('::1.1.1.0') + assert_equal([1, 2, 3], record['array']) + assert_equal(true, record['boolean']) + assert_equal("\x00\x00\x00*".b, record['bytes']) + assert_equal(42.123456, record['double']) + assert_in_delta(1.1, record['float']) + assert_equal(-268_435_456, record['int32']) + assert_equal( + { + 'mapX' => { + 'arrayX' => [7, 8, 9], + 'utf8_stringX' => 'hello', + }, + }, + record['map'], + ) + assert_equal(100, record['uint16']) + assert_equal(268_435_456, record['uint32']) + assert_equal(1_152_921_504_606_846_976, record['uint64']) + assert_equal('unicode! ☯ - ♫', record['utf8_string']) + assert_equal(1_329_227_995_784_915_872_903_807_060_280_344_576, record['uint128']) + reader.close + end + + def test_no_ipv4_search_tree + reader = MaxMind::DB.new( + 'test/data/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb' + ) + assert_equal('::0/64', reader.get('1.1.1.1')) + assert_equal('::0/64', reader.get('192.1.1.1')) + reader.close + end + + def test_ipv6_address_in_ipv4_database + reader = MaxMind::DB.new( + 'test/data/test-data/MaxMind-DB-test-ipv4-24.mmdb' + ) + e = assert_raises ArgumentError do + reader.get('2001::') + end + assert_equal( + 'Error looking up 2001::. You attempted to look up an IPv6 address in an IPv4-only database.', + e.message, + ) + reader.close + end + + def test_bad_ip_parameter + reader = MaxMind::DB.new('test/data/test-data/GeoIP2-City-Test.mmdb') + e = assert_raises ArgumentError do + reader.get(Object.new) + end + assert_equal( + 'address family must be specified', # Not great, but type is ok + e.message, + ) + reader.close + end + + def test_broken_database + reader = MaxMind::DB.new( + 'test/data/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb' + ) + e = assert_raises MaxMind::DB::InvalidDatabaseError do + reader.get('2001:220::') + end + assert_equal( + 'The MaxMind DB file\'s data section contains bad data (unknown data type or corrupt data)', + e.message, + ) + reader.close + end + + def test_ip_validation + reader = MaxMind::DB.new( + 'test/data/test-data/MaxMind-DB-test-decoder.mmdb' + ) + e = assert_raises ArgumentError do + reader.get('not_ip') + end + assert(e.message.match(/invalid address/)) + reader.close + end + + def test_missing_database + e = assert_raises SystemCallError do + MaxMind::DB.new('file-does-not-exist.mmdb') + end + assert(e.message.match(/No such file or directory/)) + end + + def test_nondatabase + e = assert_raises MaxMind::DB::InvalidDatabaseError do + MaxMind::DB.new('README.md') + end + assert_equal( + 'Metadata section not found. Is this a valid MaxMind DB file?', + e.message, + ) + end + + def test_too_many_constructor_args + e = assert_raises ArgumentError do + MaxMind::DB.new('README.md', {}, 'blah') + end + assert(e.message.match(/wrong number of arguments/)) + end + + def test_no_constructor_args + e = assert_raises ArgumentError do + MaxMind::DB.new + end + assert(e.message.match(/wrong number of arguments/)) + end + + def test_too_many_get_args + reader = MaxMind::DB.new( + 'test/data/test-data/MaxMind-DB-test-decoder.mmdb' + ) + e = assert_raises ArgumentError do + reader.get('1.1.1.1', 'blah') + end + assert(e.message.match(/wrong number of arguments/)) + reader.close + end + + def test_no_get_args + reader = MaxMind::DB.new( + 'test/data/test-data/MaxMind-DB-test-decoder.mmdb' + ) + e = assert_raises ArgumentError do + reader.get + end + assert(e.message.match(/wrong number of arguments/)) + reader.close + end + + def test_metadata_args + reader = MaxMind::DB.new( + 'test/data/test-data/MaxMind-DB-test-decoder.mmdb' + ) + e = assert_raises ArgumentError do + reader.metadata('hi') + end + assert(e.message.match(/wrong number of arguments/)) + reader.close + end + + def test_metadata_unknown_attribute + reader = MaxMind::DB.new( + 'test/data/test-data/MaxMind-DB-test-decoder.mmdb' + ) + e = assert_raises NoMethodError do + reader.metadata.what + end + assert(e.message.match(/undefined method `what'/)) + reader.close + end + + def test_close + reader = MaxMind::DB.new( + 'test/data/test-data/MaxMind-DB-test-decoder.mmdb' + ) + reader.close + end + + def test_double_close + reader = MaxMind::DB.new( + 'test/data/test-data/MaxMind-DB-test-decoder.mmdb' + ) + reader.close + reader.close + end + + def test_closed_get + reader = MaxMind::DB.new( + 'test/data/test-data/MaxMind-DB-test-decoder.mmdb' + ) + reader.close + e = assert_raises IOError do + reader.get('1.1.1.1') + end + assert_equal('closed stream', e.message) + end + + def test_closed_metadata + reader = MaxMind::DB.new( + 'test/data/test-data/MaxMind-DB-test-decoder.mmdb' + ) + reader.close + assert_equal( + { 'en' => 'MaxMind DB Decoder Test database - contains every MaxMind DB data type' }, + reader.metadata.description, + ) + end + + def test_threads + reader = MaxMind::DB.new( + 'test/data/test-data/GeoIP2-Domain-Test.mmdb' + ) + + num_threads = 16 + num_lookups = 32 + thread_lookups = [] + num_threads.times do + thread_lookups << [] + end + + threads = [] + num_threads.times do |i| + threads << Thread.new do + num_lookups.times do |j| + thread_lookups[i] << reader.get("65.115.240.#{j}") + thread_lookups[i] << reader.get("2a02:2770:3::#{j}") + end + end + end + + threads.each(&:join) + + thread_lookups.each do |a| + assert_equal(num_lookups * 2, a.length) + thread_lookups.each do |b| + assert_equal(a, b) + end + end + + reader.close + end + + # In these tests I am trying to exercise Reader#read_node directly. It is not + # too easy to test its behaviour with real databases, so construct dummy ones + # directly. + # + def test_read_node + tests = [ + { + record_size: 24, + # Left record + right record + node_bytes: "\xab\xcd\xef".b + "\xbc\xfe\xfa".b, + left: 11_259_375, + right: 12_386_042, + check_left: "\x00\xab\xcd\xef".b.unpack('N')[0], + check_right: "\x00\xbc\xfe\xfa".b.unpack('N')[0], + }, + { + record_size: 28, + # Left record (part) + middle byte + right record (part) + node_bytes: "\xab\xcd\xef".b + "\x12".b + "\xfd\xdc\xfa".b, + left: 28_036_591, + right: 50_191_610, + check_left: "\x01\xab\xcd\xef".b.unpack('N')[0], + check_right: "\x02\xfd\xdc\xfa".b.unpack('N')[0], + }, + { + record_size: 32, + # Left record + right record + node_bytes: "\xab\xcd\xef\x12".b + "\xfd\xdc\xfa\x15".b, + left: 2_882_400_018, + right: 4_259_117_589, + check_left: "\xab\xcd\xef\x12".b.unpack('N')[0], + check_right: "\xfd\xdc\xfa\x15".b.unpack('N')[0], + }, + ] + + tests.each do |test| + buf = ''.b + buf += test[:node_bytes] + + buf += "\x00".b * 16 + + buf += "\xab\xcd\xefMaxMind.com".b + buf += MMDBUtil.make_metadata_map(test[:record_size]) + + reader = MaxMind::DB.new( + buf, mode: MaxMind::DB::MODE_PARAM_IS_BUFFER + ) + + assert_equal(reader.metadata.record_size, test[:record_size]) + + assert_equal(test[:left], reader.send(:read_node, 0, 0)) + assert_equal(test[:right], reader.send(:read_node, 0, 1)) + assert_equal(test[:left], test[:check_left]) + assert_equal(test[:right], test[:check_right]) + end + end + + def check_metadata(reader, ip_version, record_size) + metadata = reader.metadata + + assert_equal(2, metadata.binary_format_major_version, 'major_version') + assert_equal(0, metadata.binary_format_minor_version, 'minor_version') + assert_operator(metadata.build_epoch, :>, 1_373_571_901, 'build_epoch') + assert_equal('Test', metadata.database_type, 'database_type') + assert_equal( + { + 'en' => 'Test Database', + 'zh' => 'Test Database Chinese', + }, + metadata.description, + 'description', + ) + assert_equal(ip_version, metadata.ip_version, 'ip_version') + assert_equal(%w[en zh], metadata.languages, 'languages') + assert_operator(metadata.node_count, :>, 36, 'node_count') + assert_equal(record_size, metadata.record_size, 'record_size') + end + + def check_ipv4(reader, filename) + 6.times do |i| + address = "1.1.1.#{2**i}" + assert_equal( + { 'ip' => address }, + reader.get(address), + "found expected data record for #{address} in #{filename}", + ) + end + + pairs = { + '1.1.1.3' => '1.1.1.2', + '1.1.1.5' => '1.1.1.4', + '1.1.1.7' => '1.1.1.4', + '1.1.1.9' => '1.1.1.8', + '1.1.1.15' => '1.1.1.8', + '1.1.1.17' => '1.1.1.16', + '1.1.1.31' => '1.1.1.16', + } + pairs.each do |key_address, value_address| + data = { 'ip' => value_address } + assert_equal( + data, + reader.get(key_address), + "found expected data record for #{key_address} in #{filename}", + ) + end + + ['1.1.1.33', '255.254.253.123'].each do |ip| + assert_nil( + reader.get(ip), + "#{ip} is not in #{filename}", + ) + end + end + + def check_ipv6(reader, filename) + subnets = [ + '::1:ffff:ffff', '::2:0:0', '::2:0:40', '::2:0:50', '::2:0:58', + ] + subnets.each do |address| + assert_equal( + { 'ip' => address }, + reader.get(address), + "found expected data record for #{address} in #{filename}", + ) + end + + pairs = { + '::2:0:1' => '::2:0:0', + '::2:0:33' => '::2:0:0', + '::2:0:39' => '::2:0:0', + '::2:0:41' => '::2:0:40', + '::2:0:49' => '::2:0:40', + '::2:0:52' => '::2:0:50', + '::2:0:57' => '::2:0:50', + '::2:0:59' => '::2:0:58', + } + pairs.each do |key_address, value_address| + assert_equal( + { 'ip' => value_address }, + reader.get(key_address), + "found expected data record for #{key_address} in #{filename}", + ) + end + + ['1.1.1.33', '255.254.253.123', '89fa::'].each do |ip| + assert_nil( + reader.get(ip), + "#{ip} is not in #{filename}", + ) + end + end +end