diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 03f6b294f..3d24645dd 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -13,7 +13,7 @@ on: env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) - BUILD_TYPE: RelWithDebInfo + BUILD_TYPE: Release jobs: build: diff --git a/3rd/libmaxminddb/t/CMakeLists.txt b/3rd/libmaxminddb/t/CMakeLists.txt deleted file mode 100644 index afbe484b8..000000000 --- a/3rd/libmaxminddb/t/CMakeLists.txt +++ /dev/null @@ -1,46 +0,0 @@ -add_library(tap - libtap/tap.c -) - -# test programs -set(TEST_TARGET_NAMES - bad_pointers_t - basic_lookup_t - data_entry_list_t - data-pool-t - data_types_t - dump_t - get_value_pointer_bug_t - get_value_t - ipv4_start_cache_t - ipv6_lookup_in_ipv4_t - metadata_pointers_t - metadata_t - no_map_get_value_t - read_node_t - version_t -) - -if(UNIX) # or if (NOT WIN32) - list(APPEND TEST_TARGET_NAMES - bad_databases_t - threads_t - ) - find_package(Threads) -endif() - -foreach(TEST_TARGET_NAME ${TEST_TARGET_NAMES}) - add_executable(${TEST_TARGET_NAME} ${TEST_TARGET_NAME}.c maxminddb_test_helper.c) - target_include_directories(${TEST_TARGET_NAME} PRIVATE ../src) - target_link_libraries(${TEST_TARGET_NAME} maxminddb tap) - - if(UNIX) - target_link_libraries(${TEST_TARGET_NAME} m) - endif() - - if (UNIX) - target_link_libraries(${TEST_TARGET_NAME} ${CMAKE_THREAD_LIBS_INIT}) - endif() - - add_test(${TEST_TARGET_NAME} ${TEST_TARGET_NAME}) -endforeach() diff --git a/3rd/libmaxminddb/t/Makefile.am b/3rd/libmaxminddb/t/Makefile.am deleted file mode 100644 index d8d416f17..000000000 --- a/3rd/libmaxminddb/t/Makefile.am +++ /dev/null @@ -1,31 +0,0 @@ -include $(top_srcdir)/common.mk - -all-local: - cd libtap && $(MAKE) $(AM_MAKEFLAGS) all -clean-local: - cd libtap && $(MAKE) $(AM_MAKEFLAGS) clean - -AM_LDFLAGS = $(top_builddir)/src/libmaxminddb.la -CFLAGS += -I$(top_srcdir)/src - -noinst_LTLIBRARIES = libmmdbtest.la -libmmdbtest_la_SOURCES = maxminddb_test_helper.c maxminddb_test_helper.h - -EXTRA_DIST = compile_c++_t.pl external_symbols_t.pl mmdblookup_t.pl \ - libtap/COPYING libtap/INSTALL libtap/Makefile libtap/README.md \ - libtap/tap.c libtap/tap.h maxmind-db - -check_PROGRAMS = \ - bad_pointers_t bad_databases_t basic_lookup_t data_entry_list_t \ - data-pool-t data_types_t dump_t get_value_t get_value_pointer_bug_t \ - ipv4_start_cache_t ipv6_lookup_in_ipv4_t metadata_t metadata_pointers_t \ - no_map_get_value_t read_node_t threads_t version_t - -data_pool_t_LDFLAGS = $(AM_LDFLAGS) -lm -data_pool_t_SOURCES = data-pool-t.c ../src/data-pool.c - -threads_t_CFLAGS = $(CFLAGS) -pthread - -TESTS = $(check_PROGRAMS) compile_c++_t.pl external_symbols_t.pl mmdblookup_t.pl - -LDADD = libmmdbtest.la libtap/libtap.a diff --git a/3rd/libmaxminddb/t/Makefile.in b/3rd/libmaxminddb/t/Makefile.in deleted file mode 100644 index edcd13098..000000000 --- a/3rd/libmaxminddb/t/Makefile.in +++ /dev/null @@ -1,994 +0,0 @@ -# Makefile.in generated by automake 1.16.2 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -check_PROGRAMS = bad_pointers_t$(EXEEXT) bad_databases_t$(EXEEXT) \ - basic_lookup_t$(EXEEXT) data_entry_list_t$(EXEEXT) \ - data-pool-t$(EXEEXT) data_types_t$(EXEEXT) dump_t$(EXEEXT) \ - get_value_t$(EXEEXT) get_value_pointer_bug_t$(EXEEXT) \ - ipv4_start_cache_t$(EXEEXT) ipv6_lookup_in_ipv4_t$(EXEEXT) \ - metadata_t$(EXEEXT) metadata_pointers_t$(EXEEXT) \ - no_map_get_value_t$(EXEEXT) read_node_t$(EXEEXT) \ - threads_t$(EXEEXT) version_t$(EXEEXT) -subdir = t -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h \ - $(top_builddir)/include/maxminddb_config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -LTLIBRARIES = $(noinst_LTLIBRARIES) -libmmdbtest_la_LIBADD = -am_libmmdbtest_la_OBJECTS = maxminddb_test_helper.lo -libmmdbtest_la_OBJECTS = $(am_libmmdbtest_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -bad_databases_t_SOURCES = bad_databases_t.c -bad_databases_t_OBJECTS = bad_databases_t.$(OBJEXT) -bad_databases_t_LDADD = $(LDADD) -bad_databases_t_DEPENDENCIES = libmmdbtest.la libtap/libtap.a -bad_pointers_t_SOURCES = bad_pointers_t.c -bad_pointers_t_OBJECTS = bad_pointers_t.$(OBJEXT) -bad_pointers_t_LDADD = $(LDADD) -bad_pointers_t_DEPENDENCIES = libmmdbtest.la libtap/libtap.a -basic_lookup_t_SOURCES = basic_lookup_t.c -basic_lookup_t_OBJECTS = basic_lookup_t.$(OBJEXT) -basic_lookup_t_LDADD = $(LDADD) -basic_lookup_t_DEPENDENCIES = libmmdbtest.la libtap/libtap.a -am_data_pool_t_OBJECTS = data-pool-t.$(OBJEXT) data-pool.$(OBJEXT) -data_pool_t_OBJECTS = $(am_data_pool_t_OBJECTS) -data_pool_t_LDADD = $(LDADD) -data_pool_t_DEPENDENCIES = libmmdbtest.la libtap/libtap.a -data_pool_t_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(data_pool_t_LDFLAGS) $(LDFLAGS) -o $@ -data_entry_list_t_SOURCES = data_entry_list_t.c -data_entry_list_t_OBJECTS = data_entry_list_t.$(OBJEXT) -data_entry_list_t_LDADD = $(LDADD) -data_entry_list_t_DEPENDENCIES = libmmdbtest.la libtap/libtap.a -data_types_t_SOURCES = data_types_t.c -data_types_t_OBJECTS = data_types_t.$(OBJEXT) -data_types_t_LDADD = $(LDADD) -data_types_t_DEPENDENCIES = libmmdbtest.la libtap/libtap.a -dump_t_SOURCES = dump_t.c -dump_t_OBJECTS = dump_t.$(OBJEXT) -dump_t_LDADD = $(LDADD) -dump_t_DEPENDENCIES = libmmdbtest.la libtap/libtap.a -get_value_pointer_bug_t_SOURCES = get_value_pointer_bug_t.c -get_value_pointer_bug_t_OBJECTS = get_value_pointer_bug_t.$(OBJEXT) -get_value_pointer_bug_t_LDADD = $(LDADD) -get_value_pointer_bug_t_DEPENDENCIES = libmmdbtest.la libtap/libtap.a -get_value_t_SOURCES = get_value_t.c -get_value_t_OBJECTS = get_value_t.$(OBJEXT) -get_value_t_LDADD = $(LDADD) -get_value_t_DEPENDENCIES = libmmdbtest.la libtap/libtap.a -ipv4_start_cache_t_SOURCES = ipv4_start_cache_t.c -ipv4_start_cache_t_OBJECTS = ipv4_start_cache_t.$(OBJEXT) -ipv4_start_cache_t_LDADD = $(LDADD) -ipv4_start_cache_t_DEPENDENCIES = libmmdbtest.la libtap/libtap.a -ipv6_lookup_in_ipv4_t_SOURCES = ipv6_lookup_in_ipv4_t.c -ipv6_lookup_in_ipv4_t_OBJECTS = ipv6_lookup_in_ipv4_t.$(OBJEXT) -ipv6_lookup_in_ipv4_t_LDADD = $(LDADD) -ipv6_lookup_in_ipv4_t_DEPENDENCIES = libmmdbtest.la libtap/libtap.a -metadata_pointers_t_SOURCES = metadata_pointers_t.c -metadata_pointers_t_OBJECTS = metadata_pointers_t.$(OBJEXT) -metadata_pointers_t_LDADD = $(LDADD) -metadata_pointers_t_DEPENDENCIES = libmmdbtest.la libtap/libtap.a -metadata_t_SOURCES = metadata_t.c -metadata_t_OBJECTS = metadata_t.$(OBJEXT) -metadata_t_LDADD = $(LDADD) -metadata_t_DEPENDENCIES = libmmdbtest.la libtap/libtap.a -no_map_get_value_t_SOURCES = no_map_get_value_t.c -no_map_get_value_t_OBJECTS = no_map_get_value_t.$(OBJEXT) -no_map_get_value_t_LDADD = $(LDADD) -no_map_get_value_t_DEPENDENCIES = libmmdbtest.la libtap/libtap.a -read_node_t_SOURCES = read_node_t.c -read_node_t_OBJECTS = read_node_t.$(OBJEXT) -read_node_t_LDADD = $(LDADD) -read_node_t_DEPENDENCIES = libmmdbtest.la libtap/libtap.a -threads_t_SOURCES = threads_t.c -threads_t_OBJECTS = threads_t-threads_t.$(OBJEXT) -threads_t_LDADD = $(LDADD) -threads_t_DEPENDENCIES = libmmdbtest.la libtap/libtap.a -threads_t_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(threads_t_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -version_t_SOURCES = version_t.c -version_t_OBJECTS = version_t.$(OBJEXT) -version_t_LDADD = $(LDADD) -version_t_DEPENDENCIES = libmmdbtest.la libtap/libtap.a -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -I$(top_builddir)/include -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/bad_databases_t.Po \ - ./$(DEPDIR)/bad_pointers_t.Po ./$(DEPDIR)/basic_lookup_t.Po \ - ./$(DEPDIR)/data-pool-t.Po ./$(DEPDIR)/data-pool.Po \ - ./$(DEPDIR)/data_entry_list_t.Po ./$(DEPDIR)/data_types_t.Po \ - ./$(DEPDIR)/dump_t.Po ./$(DEPDIR)/get_value_pointer_bug_t.Po \ - ./$(DEPDIR)/get_value_t.Po ./$(DEPDIR)/ipv4_start_cache_t.Po \ - ./$(DEPDIR)/ipv6_lookup_in_ipv4_t.Po \ - ./$(DEPDIR)/maxminddb_test_helper.Plo \ - ./$(DEPDIR)/metadata_pointers_t.Po ./$(DEPDIR)/metadata_t.Po \ - ./$(DEPDIR)/no_map_get_value_t.Po ./$(DEPDIR)/read_node_t.Po \ - ./$(DEPDIR)/threads_t-threads_t.Po ./$(DEPDIR)/version_t.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libmmdbtest_la_SOURCES) bad_databases_t.c bad_pointers_t.c \ - basic_lookup_t.c $(data_pool_t_SOURCES) data_entry_list_t.c \ - data_types_t.c dump_t.c get_value_pointer_bug_t.c \ - get_value_t.c ipv4_start_cache_t.c ipv6_lookup_in_ipv4_t.c \ - metadata_pointers_t.c metadata_t.c no_map_get_value_t.c \ - read_node_t.c threads_t.c version_t.c -DIST_SOURCES = $(libmmdbtest_la_SOURCES) bad_databases_t.c \ - bad_pointers_t.c basic_lookup_t.c $(data_pool_t_SOURCES) \ - data_entry_list_t.c data_types_t.c dump_t.c \ - get_value_pointer_bug_t.c get_value_t.c ipv4_start_cache_t.c \ - ipv6_lookup_in_ipv4_t.c metadata_pointers_t.c metadata_t.c \ - no_map_get_value_t.c read_node_t.c threads_t.c version_t.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red=''; \ - grn=''; \ - lgn=''; \ - blu=''; \ - mgn=''; \ - brg=''; \ - std=''; \ - fi; \ -} -am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/common.mk \ - $(top_srcdir)/depcomp -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -I$(top_srcdir)/src -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfigdir = @pkgconfigdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -runstatedir = @runstatedir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -@DEBUG_FALSE@AM_CFLAGS = -O2 -g -@DEBUG_TRUE@AM_CFLAGS = -O0 -g -Wall -Wextra -AM_CPPFLAGS = -I$(top_srcdir)/include -AM_LDFLAGS = $(top_builddir)/src/libmaxminddb.la -noinst_LTLIBRARIES = libmmdbtest.la -libmmdbtest_la_SOURCES = maxminddb_test_helper.c maxminddb_test_helper.h -EXTRA_DIST = compile_c++_t.pl external_symbols_t.pl mmdblookup_t.pl \ - libtap/COPYING libtap/INSTALL libtap/Makefile libtap/README.md \ - libtap/tap.c libtap/tap.h maxmind-db - -data_pool_t_LDFLAGS = $(AM_LDFLAGS) -lm -data_pool_t_SOURCES = data-pool-t.c ../src/data-pool.c -threads_t_CFLAGS = $(CFLAGS) -pthread -TESTS = $(check_PROGRAMS) compile_c++_t.pl external_symbols_t.pl mmdblookup_t.pl -LDADD = libmmdbtest.la libtap/libtap.a -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.mk $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign t/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign t/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; -$(top_srcdir)/common.mk $(am__empty): - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libmmdbtest.la: $(libmmdbtest_la_OBJECTS) $(libmmdbtest_la_DEPENDENCIES) $(EXTRA_libmmdbtest_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) $(libmmdbtest_la_OBJECTS) $(libmmdbtest_la_LIBADD) $(LIBS) - -bad_databases_t$(EXEEXT): $(bad_databases_t_OBJECTS) $(bad_databases_t_DEPENDENCIES) $(EXTRA_bad_databases_t_DEPENDENCIES) - @rm -f bad_databases_t$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(bad_databases_t_OBJECTS) $(bad_databases_t_LDADD) $(LIBS) - -bad_pointers_t$(EXEEXT): $(bad_pointers_t_OBJECTS) $(bad_pointers_t_DEPENDENCIES) $(EXTRA_bad_pointers_t_DEPENDENCIES) - @rm -f bad_pointers_t$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(bad_pointers_t_OBJECTS) $(bad_pointers_t_LDADD) $(LIBS) - -basic_lookup_t$(EXEEXT): $(basic_lookup_t_OBJECTS) $(basic_lookup_t_DEPENDENCIES) $(EXTRA_basic_lookup_t_DEPENDENCIES) - @rm -f basic_lookup_t$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(basic_lookup_t_OBJECTS) $(basic_lookup_t_LDADD) $(LIBS) - -data-pool-t$(EXEEXT): $(data_pool_t_OBJECTS) $(data_pool_t_DEPENDENCIES) $(EXTRA_data_pool_t_DEPENDENCIES) - @rm -f data-pool-t$(EXEEXT) - $(AM_V_CCLD)$(data_pool_t_LINK) $(data_pool_t_OBJECTS) $(data_pool_t_LDADD) $(LIBS) - -data_entry_list_t$(EXEEXT): $(data_entry_list_t_OBJECTS) $(data_entry_list_t_DEPENDENCIES) $(EXTRA_data_entry_list_t_DEPENDENCIES) - @rm -f data_entry_list_t$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(data_entry_list_t_OBJECTS) $(data_entry_list_t_LDADD) $(LIBS) - -data_types_t$(EXEEXT): $(data_types_t_OBJECTS) $(data_types_t_DEPENDENCIES) $(EXTRA_data_types_t_DEPENDENCIES) - @rm -f data_types_t$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(data_types_t_OBJECTS) $(data_types_t_LDADD) $(LIBS) - -dump_t$(EXEEXT): $(dump_t_OBJECTS) $(dump_t_DEPENDENCIES) $(EXTRA_dump_t_DEPENDENCIES) - @rm -f dump_t$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(dump_t_OBJECTS) $(dump_t_LDADD) $(LIBS) - -get_value_pointer_bug_t$(EXEEXT): $(get_value_pointer_bug_t_OBJECTS) $(get_value_pointer_bug_t_DEPENDENCIES) $(EXTRA_get_value_pointer_bug_t_DEPENDENCIES) - @rm -f get_value_pointer_bug_t$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(get_value_pointer_bug_t_OBJECTS) $(get_value_pointer_bug_t_LDADD) $(LIBS) - -get_value_t$(EXEEXT): $(get_value_t_OBJECTS) $(get_value_t_DEPENDENCIES) $(EXTRA_get_value_t_DEPENDENCIES) - @rm -f get_value_t$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(get_value_t_OBJECTS) $(get_value_t_LDADD) $(LIBS) - -ipv4_start_cache_t$(EXEEXT): $(ipv4_start_cache_t_OBJECTS) $(ipv4_start_cache_t_DEPENDENCIES) $(EXTRA_ipv4_start_cache_t_DEPENDENCIES) - @rm -f ipv4_start_cache_t$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(ipv4_start_cache_t_OBJECTS) $(ipv4_start_cache_t_LDADD) $(LIBS) - -ipv6_lookup_in_ipv4_t$(EXEEXT): $(ipv6_lookup_in_ipv4_t_OBJECTS) $(ipv6_lookup_in_ipv4_t_DEPENDENCIES) $(EXTRA_ipv6_lookup_in_ipv4_t_DEPENDENCIES) - @rm -f ipv6_lookup_in_ipv4_t$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(ipv6_lookup_in_ipv4_t_OBJECTS) $(ipv6_lookup_in_ipv4_t_LDADD) $(LIBS) - -metadata_pointers_t$(EXEEXT): $(metadata_pointers_t_OBJECTS) $(metadata_pointers_t_DEPENDENCIES) $(EXTRA_metadata_pointers_t_DEPENDENCIES) - @rm -f metadata_pointers_t$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(metadata_pointers_t_OBJECTS) $(metadata_pointers_t_LDADD) $(LIBS) - -metadata_t$(EXEEXT): $(metadata_t_OBJECTS) $(metadata_t_DEPENDENCIES) $(EXTRA_metadata_t_DEPENDENCIES) - @rm -f metadata_t$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(metadata_t_OBJECTS) $(metadata_t_LDADD) $(LIBS) - -no_map_get_value_t$(EXEEXT): $(no_map_get_value_t_OBJECTS) $(no_map_get_value_t_DEPENDENCIES) $(EXTRA_no_map_get_value_t_DEPENDENCIES) - @rm -f no_map_get_value_t$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(no_map_get_value_t_OBJECTS) $(no_map_get_value_t_LDADD) $(LIBS) - -read_node_t$(EXEEXT): $(read_node_t_OBJECTS) $(read_node_t_DEPENDENCIES) $(EXTRA_read_node_t_DEPENDENCIES) - @rm -f read_node_t$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(read_node_t_OBJECTS) $(read_node_t_LDADD) $(LIBS) - -threads_t$(EXEEXT): $(threads_t_OBJECTS) $(threads_t_DEPENDENCIES) $(EXTRA_threads_t_DEPENDENCIES) - @rm -f threads_t$(EXEEXT) - $(AM_V_CCLD)$(threads_t_LINK) $(threads_t_OBJECTS) $(threads_t_LDADD) $(LIBS) - -version_t$(EXEEXT): $(version_t_OBJECTS) $(version_t_DEPENDENCIES) $(EXTRA_version_t_DEPENDENCIES) - @rm -f version_t$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(version_t_OBJECTS) $(version_t_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bad_databases_t.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bad_pointers_t.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basic_lookup_t.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-pool-t.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-pool.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data_entry_list_t.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data_types_t.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_t.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_value_pointer_bug_t.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_value_t.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipv4_start_cache_t.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipv6_lookup_in_ipv4_t.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/maxminddb_test_helper.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/metadata_pointers_t.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/metadata_t.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/no_map_get_value_t.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/read_node_t.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads_t-threads_t.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version_t.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -data-pool.o: ../src/data-pool.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT data-pool.o -MD -MP -MF $(DEPDIR)/data-pool.Tpo -c -o data-pool.o `test -f '../src/data-pool.c' || echo '$(srcdir)/'`../src/data-pool.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/data-pool.Tpo $(DEPDIR)/data-pool.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../src/data-pool.c' object='data-pool.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o data-pool.o `test -f '../src/data-pool.c' || echo '$(srcdir)/'`../src/data-pool.c - -data-pool.obj: ../src/data-pool.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT data-pool.obj -MD -MP -MF $(DEPDIR)/data-pool.Tpo -c -o data-pool.obj `if test -f '../src/data-pool.c'; then $(CYGPATH_W) '../src/data-pool.c'; else $(CYGPATH_W) '$(srcdir)/../src/data-pool.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/data-pool.Tpo $(DEPDIR)/data-pool.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../src/data-pool.c' object='data-pool.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o data-pool.obj `if test -f '../src/data-pool.c'; then $(CYGPATH_W) '../src/data-pool.c'; else $(CYGPATH_W) '$(srcdir)/../src/data-pool.c'; fi` - -threads_t-threads_t.o: threads_t.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(threads_t_CFLAGS) $(CFLAGS) -MT threads_t-threads_t.o -MD -MP -MF $(DEPDIR)/threads_t-threads_t.Tpo -c -o threads_t-threads_t.o `test -f 'threads_t.c' || echo '$(srcdir)/'`threads_t.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/threads_t-threads_t.Tpo $(DEPDIR)/threads_t-threads_t.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='threads_t.c' object='threads_t-threads_t.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(threads_t_CFLAGS) $(CFLAGS) -c -o threads_t-threads_t.o `test -f 'threads_t.c' || echo '$(srcdir)/'`threads_t.c - -threads_t-threads_t.obj: threads_t.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(threads_t_CFLAGS) $(CFLAGS) -MT threads_t-threads_t.obj -MD -MP -MF $(DEPDIR)/threads_t-threads_t.Tpo -c -o threads_t-threads_t.obj `if test -f 'threads_t.c'; then $(CYGPATH_W) 'threads_t.c'; else $(CYGPATH_W) '$(srcdir)/threads_t.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/threads_t-threads_t.Tpo $(DEPDIR)/threads_t-threads_t.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='threads_t.c' object='threads_t-threads_t.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(threads_t_CFLAGS) $(CFLAGS) -c -o threads_t-threads_t.obj `if test -f 'threads_t.c'; then $(CYGPATH_W) 'threads_t.c'; else $(CYGPATH_W) '$(srcdir)/threads_t.c'; fi` - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst $(AM_TESTS_FD_REDIRECT); then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ - fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ - else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ - fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ - else \ - skipped="($$skip tests were not run)"; \ - fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - fi; \ - echo "$${col}$$dashes$${std}"; \ - echo "$${col}$$banner$${std}"; \ - test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ - test -z "$$report" || echo "$${col}$$report$${std}"; \ - echo "$${col}$$dashes$${std}"; \ - test "$$failed" -eq 0; \ - else :; fi - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) all-local -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool clean-local \ - clean-noinstLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/bad_databases_t.Po - -rm -f ./$(DEPDIR)/bad_pointers_t.Po - -rm -f ./$(DEPDIR)/basic_lookup_t.Po - -rm -f ./$(DEPDIR)/data-pool-t.Po - -rm -f ./$(DEPDIR)/data-pool.Po - -rm -f ./$(DEPDIR)/data_entry_list_t.Po - -rm -f ./$(DEPDIR)/data_types_t.Po - -rm -f ./$(DEPDIR)/dump_t.Po - -rm -f ./$(DEPDIR)/get_value_pointer_bug_t.Po - -rm -f ./$(DEPDIR)/get_value_t.Po - -rm -f ./$(DEPDIR)/ipv4_start_cache_t.Po - -rm -f ./$(DEPDIR)/ipv6_lookup_in_ipv4_t.Po - -rm -f ./$(DEPDIR)/maxminddb_test_helper.Plo - -rm -f ./$(DEPDIR)/metadata_pointers_t.Po - -rm -f ./$(DEPDIR)/metadata_t.Po - -rm -f ./$(DEPDIR)/no_map_get_value_t.Po - -rm -f ./$(DEPDIR)/read_node_t.Po - -rm -f ./$(DEPDIR)/threads_t-threads_t.Po - -rm -f ./$(DEPDIR)/version_t.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/bad_databases_t.Po - -rm -f ./$(DEPDIR)/bad_pointers_t.Po - -rm -f ./$(DEPDIR)/basic_lookup_t.Po - -rm -f ./$(DEPDIR)/data-pool-t.Po - -rm -f ./$(DEPDIR)/data-pool.Po - -rm -f ./$(DEPDIR)/data_entry_list_t.Po - -rm -f ./$(DEPDIR)/data_types_t.Po - -rm -f ./$(DEPDIR)/dump_t.Po - -rm -f ./$(DEPDIR)/get_value_pointer_bug_t.Po - -rm -f ./$(DEPDIR)/get_value_t.Po - -rm -f ./$(DEPDIR)/ipv4_start_cache_t.Po - -rm -f ./$(DEPDIR)/ipv6_lookup_in_ipv4_t.Po - -rm -f ./$(DEPDIR)/maxminddb_test_helper.Plo - -rm -f ./$(DEPDIR)/metadata_pointers_t.Po - -rm -f ./$(DEPDIR)/metadata_t.Po - -rm -f ./$(DEPDIR)/no_map_get_value_t.Po - -rm -f ./$(DEPDIR)/read_node_t.Po - -rm -f ./$(DEPDIR)/threads_t-threads_t.Po - -rm -f ./$(DEPDIR)/version_t.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am all-local am--depfiles check \ - check-TESTS check-am clean clean-checkPROGRAMS clean-generic \ - clean-libtool clean-local clean-noinstLTLIBRARIES \ - cscopelist-am ctags ctags-am distclean distclean-compile \ - distclean-generic distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -all-local: - cd libtap && $(MAKE) $(AM_MAKEFLAGS) all -clean-local: - cd libtap && $(MAKE) $(AM_MAKEFLAGS) clean - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/3rd/libmaxminddb/t/bad_databases_t.c b/3rd/libmaxminddb/t/bad_databases_t.c deleted file mode 100644 index 54003d728..000000000 --- a/3rd/libmaxminddb/t/bad_databases_t.c +++ /dev/null @@ -1,67 +0,0 @@ -// This test currently does not work on Windows as nftw is -// not available. -#define _XOPEN_SOURCE 500 -#include - -#include -#include - -#include "maxminddb_test_helper.h" - -int test_read(const char *path, - const struct stat *UNUSED(sbuf), - int flags, - struct FTW *UNUSED(ftw)) { - // Check if path is a regular file) - if (flags != FTW_F) { - return 0; - } - - MMDB_s *mmdb = (MMDB_s *)calloc(1, sizeof(MMDB_s)); - - if (NULL == mmdb) { - BAIL_OUT("could not allocate memory for our MMDB_s struct"); - } - - int status = MMDB_open(path, MMDB_MODE_MMAP, mmdb); - - if (status != MMDB_SUCCESS) { - ok(1, "received error when opening %s", path); - free(mmdb); - return 0; - } - - int gai_error, mmdb_error; - MMDB_lookup_string(mmdb, "1.1.1.1", &gai_error, &mmdb_error); - if (gai_error != 0) { - BAIL_OUT("could not parse IP address"); - } - - cmp_ok( - mmdb_error, "!=", MMDB_SUCCESS, "opening %s returned an error", path); - - MMDB_close(mmdb); - free(mmdb); - return 0; -} - -int main(void) { - char *test_db_dir; -#ifdef _WIN32 - test_db_dir = "../t/maxmind-db/bad-data"; -#else - char cwd[500]; - char *UNUSED(tmp) = getcwd(cwd, 500); - - if (strcmp(basename(cwd), "t") == 0) { - test_db_dir = "./maxmind-db/bad-data"; - } else { - test_db_dir = "./t/maxmind-db/bad-data"; - } -#endif - plan(NO_PLAN); - if (nftw(test_db_dir, test_read, 10, FTW_PHYS) != 0) { - BAIL_OUT("nftw failed"); - } - done_testing(); -} diff --git a/3rd/libmaxminddb/t/bad_pointers_t.c b/3rd/libmaxminddb/t/bad_pointers_t.c deleted file mode 100644 index e0fe3a816..000000000 --- a/3rd/libmaxminddb/t/bad_pointers_t.c +++ /dev/null @@ -1,58 +0,0 @@ -#include "maxminddb_test_helper.h" - -void run_tests(int mode, const char *mode_desc) { - const char *filename = "MaxMind-DB-test-broken-pointers-24.mmdb"; - const char *path = test_database_path(filename); - MMDB_s *mmdb = open_ok(path, mode, mode_desc); - free((void *)path); - - { - const char *ip = "1.1.1.16"; - MMDB_lookup_result_s result = - lookup_string_ok(mmdb, ip, filename, mode_desc); - - MMDB_entry_data_s entry_data; - int status = MMDB_get_value(&result.entry, &entry_data, NULL); - - cmp_ok(status, - "==", - MMDB_INVALID_DATA_ERROR, - "MMDB_get_value returns MMDB_INVALID_DATA_ERROR for bad pointer " - "in data section"); - - MMDB_entry_data_list_s *entry_data_list; - status = MMDB_get_entry_data_list(&result.entry, &entry_data_list); - - cmp_ok(status, - "==", - MMDB_INVALID_DATA_ERROR, - "MMDB_get_entry_data_list returns MMDB_INVALID_DATA_ERROR for " - "bad pointer in data section"); - - MMDB_free_entry_data_list(entry_data_list); - } - - { - const char *ip = "1.1.1.32"; - - int gai_error, mmdb_error; - MMDB_lookup_result_s UNUSED(result) = - MMDB_lookup_string(mmdb, ip, &gai_error, &mmdb_error); - - cmp_ok(mmdb_error, - "==", - MMDB_CORRUPT_SEARCH_TREE_ERROR, - "MMDB_lookup_string sets mmdb_error to " - "MMDB_CORRUPT_SEARCH_TREE_ERROR when a search tree record " - "points outside the data section"); - } - - MMDB_close(mmdb); - free(mmdb); -} - -int main(void) { - plan(NO_PLAN); - for_all_modes(&run_tests); - done_testing(); -} diff --git a/3rd/libmaxminddb/t/basic_lookup_t.c b/3rd/libmaxminddb/t/basic_lookup_t.c deleted file mode 100644 index 8baabbeb1..000000000 --- a/3rd/libmaxminddb/t/basic_lookup_t.c +++ /dev/null @@ -1,215 +0,0 @@ -#include "maxminddb_test_helper.h" - -static void test_big_lookup(void); - -/* These globals are gross but it's the easiest way to mix calling - * for_all_modes() and for_all_record_sizes() */ -static int Current_Mode; -static const char *Current_Mode_Description; - -void test_one_result(MMDB_s *mmdb, - MMDB_lookup_result_s result, - const char *ip, - const char *expect, - const char *function, - const char *filename, - const char *mode_desc) { - int is_ok = ok(result.found_entry, - "got a result for an IP in the database - %s - %s - %s - %s", - function, - ip, - filename, - mode_desc); - - if (!is_ok) { - return; - } - - MMDB_entry_data_s data = - data_ok(&result, MMDB_DATA_TYPE_UTF8_STRING, "result{ip}", "ip", NULL); - - char *string = mmdb_strndup(data.utf8_string, data.data_size); - - char *real_expect; - if (mmdb->metadata.ip_version == 4 || strncmp(expect, "::", 2) == 0) { - real_expect = mmdb_strndup(expect, strlen(expect)); - } else { - // When looking up IPv4 addresses in a mixed DB the result will be - // something like "::1.2.3.4", not just "1.2.3.4". - int maxlen = strlen(expect) + 3; - real_expect = malloc(maxlen); - if (!real_expect) { - BAIL_OUT("could not allocate memory"); - } - snprintf(real_expect, maxlen, "::%s", expect); - } - - is(string, - real_expect, - "found expected result for ip key - %s - %s - %s - %s", - function, - ip, - filename, - mode_desc); - - free(real_expect); - free(string); -} - -void test_one_ip(MMDB_s *mmdb, - const char *ip, - const char *expect, - const char *filename, - const char *mode_desc) { - MMDB_lookup_result_s result = - lookup_string_ok(mmdb, ip, filename, mode_desc); - - test_one_result( - mmdb, result, ip, expect, "MMDB_lookup_string", filename, mode_desc); - - result = lookup_sockaddr_ok(mmdb, ip, filename, mode_desc); - test_one_result( - mmdb, result, ip, expect, "MMDB_lookup_addrinfo", filename, mode_desc); -} - -void run_ipX_tests(const char *filename, - const char **missing_ips, - int missing_ips_length, - const char *pairs[][2], - int pairs_rows) { - const char *path = test_database_path(filename); - int mode = Current_Mode; - const char *mode_desc = Current_Mode_Description; - - MMDB_s *mmdb = open_ok(path, mode, mode_desc); - free((void *)path); - - char desc_suffix[500]; - snprintf(desc_suffix, 500, "%s - %s", filename, mode_desc); - - for (int i = 0; i < missing_ips_length; i++) { - const char *ip = missing_ips[i]; - - MMDB_lookup_result_s result = - lookup_string_ok(mmdb, ip, filename, mode_desc); - - ok(!result.found_entry, - "no result entry struct returned for IP address not in the database " - "(string lookup) - %s - %s - %s", - ip, - filename, - mode_desc); - - result = lookup_sockaddr_ok(mmdb, ip, filename, mode_desc); - - ok(!result.found_entry, - "no result entry struct returned for IP address not in the database " - "(ipv4 lookup) - %s - %s - %s", - ip, - filename, - mode_desc); - } - - for (int i = 0; i < pairs_rows; i += 1) { - const char *ip_to_lookup = pairs[i][0]; - const char *expect = pairs[i][1]; - - test_one_ip(mmdb, ip_to_lookup, expect, filename, mode_desc); - } - - MMDB_close(mmdb); - free(mmdb); -} - -void run_ipv4_tests(int UNUSED(record_size), - const char *filename, - const char *UNUSED(ignored)) { - const char *pairs[9][2] = { - {"1.1.1.1", "1.1.1.1"}, - {"1.1.1.2", "1.1.1.2"}, - {"1.1.1.3", "1.1.1.2"}, - {"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"}, - {"1.1.1.32", "1.1.1.32"}, - }; - - const char *missing[1] = {"2.3.4.5"}; - run_ipX_tests(filename, missing, 1, pairs, 9); -} - -void run_ipv6_tests(int UNUSED(record_size), - const char *filename, - const char *UNUSED(ignored)) { - const char *pairs[9][2] = { - {"::1:ffff:ffff", "::1:ffff:ffff"}, - {"::2:0:0", "::2:0:0"}, - {"::2:0:1a", "::2:0:0"}, - {"::2:0:40", "::2:0:40"}, - {"::2:0:4f", "::2:0:40"}, - {"::2:0:50", "::2:0:50"}, - {"::2:0:52", "::2:0:50"}, - {"::2:0:58", "::2:0:58"}, - {"::2:0:59", "::2:0:58"}, - }; - - const char *missing[2] = {"2.3.4.5", "::abcd"}; - run_ipX_tests(filename, missing, 2, pairs, 9); -} - -void all_record_sizes(int mode, const char *description) { - const char *ipv4_filename_fmts[] = {"MaxMind-DB-test-ipv4-%i.mmdb", - "MaxMind-DB-test-mixed-%i.mmdb"}; - - Current_Mode = mode; - Current_Mode_Description = description; - - for (int i = 0; i < 2; i++) { - for_all_record_sizes(ipv4_filename_fmts[i], &run_ipv4_tests); - } - - const char *ipv6_filename_fmts[] = {"MaxMind-DB-test-ipv6-%i.mmdb", - "MaxMind-DB-test-mixed-%i.mmdb"}; - - for (int i = 0; i < 2; i++) { - for_all_record_sizes(ipv6_filename_fmts[i], &run_ipv6_tests); - } -} - -static void test_big_lookup(void) { - const char *const db_filename = "GeoIP2-Precision-Enterprise-Test.mmdb"; - const char *const db_path = test_database_path(db_filename); - ok(db_path != NULL, "got database path"); - - MMDB_s *const mmdb = open_ok(db_path, MMDB_MODE_MMAP, "mmap mode"); - ok(mmdb != NULL, "opened MMDB"); - free((char *)db_path); - - int gai_err = 0, mmdb_err = 0; - const char *const ip_address = "81.2.69.160"; - MMDB_lookup_result_s result = - MMDB_lookup_string(mmdb, ip_address, &gai_err, &mmdb_err); - ok(gai_err == 0, "no getaddrinfo error"); - ok(mmdb_err == MMDB_SUCCESS, "no error from maxminddb library"); - ok(result.found_entry, "found IP"); - - MMDB_entry_data_list_s *entry_data_list = NULL; - ok(MMDB_get_entry_data_list(&result.entry, &entry_data_list) == - MMDB_SUCCESS, - "successfully looked up entry data list"); - ok(entry_data_list != NULL, "got an entry_data_list"); - - MMDB_free_entry_data_list(entry_data_list); - - MMDB_close(mmdb); - free(mmdb); -} - -int main(void) { - plan(NO_PLAN); - for_all_modes(&all_record_sizes); - test_big_lookup(); - done_testing(); -} diff --git a/3rd/libmaxminddb/t/compile_c++_t.pl b/3rd/libmaxminddb/t/compile_c++_t.pl deleted file mode 100755 index ec1d88640..000000000 --- a/3rd/libmaxminddb/t/compile_c++_t.pl +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/env perl - -use strict; -use warnings; - -use Cwd qw( abs_path ); -use FindBin qw( $Bin ); - -eval <<'EOF'; -use Test::More 0.88; -use File::Temp qw( tempdir ); -use IPC::Run3 qw( run3 ); -EOF - -if ($@) { - print - "1..0 # skip all tests skipped - these tests need the Test::More 0.88, File::Temp, and IPC::Run3 modules:\n"; - print "$@"; - exit 0; -} - -my $test_db = "$Bin/maxmind-db/test-data/GeoIP2-City-Test.mmdb"; - -my $cpp_code = <<"EOF"; -#include - -int main(int argc, char *argv[]) -{ - const char *fname = "$test_db"; - MMDB_s mmdb; - return MMDB_open(fname, MMDB_MODE_MMAP, &mmdb); -} -EOF - -my $tempdir = tempdir(CLEANUP => 1 ); - -my $file = "$tempdir/open.cpp"; -open my $fh, '>', $file or die $!; -print {$fh} $cpp_code or die $!; -close $fh or die $!; - -my $exe = "$tempdir/open"; - -my $include_dir = abs_path("$Bin/../include"); -my $lib_dir = abs_path("$Bin/../src/.libs"); - -my $cxx = $ENV{CXX} || 'c++'; -_test_cmd( - [ $cxx, $file, "-I$include_dir", "-L$lib_dir", "-lmaxminddb", "-o$exe" ], - qr/^$/, - q{}, - 0, - 'compile C++ program which links against libmaxminddb', -); - -# DYLD_LIBRARY_PATH is for Mac OS X -$ENV{LD_LIBRARY_PATH} = $ENV{DYLD_LIBRARY_PATH} = $lib_dir; - -_test_cmd( - [$exe], - qr/^$/, - q{}, - 0, - 'compiled C++ program executes without errors' -); - -done_testing(); - -sub _test_cmd { - my $cmd = shift; - my $expect_stdout = shift; - my $expect_stderr = shift; - my $expect_status = shift; - my $desc = shift; - - my $stdout; - my $stderr; - run3( - $cmd, - \undef, - \$stdout, - \$stderr, - ); - - my $exit_status = $? >> 8; - - # We don't need to retest that the help output shows up for all errors - if ( defined $expect_stdout ) { - like( - $stdout, - $expect_stdout, - "stdout for @{$cmd}" - ); - } - - if ( ref $expect_stderr ) { - like( $stderr, $expect_stderr, "stderr for @{$cmd}" ); - } - else { - is( $stderr, $expect_stderr, "stderr for @{$cmd}" ); - } - - is( - $exit_status, $expect_status, - "exit status was $expect_status for @{$cmd}" - ); -} diff --git a/3rd/libmaxminddb/t/data-pool-t.c b/3rd/libmaxminddb/t/data-pool-t.c deleted file mode 100644 index ff8907c01..000000000 --- a/3rd/libmaxminddb/t/data-pool-t.c +++ /dev/null @@ -1,344 +0,0 @@ -#include "libtap/tap.h" -#include "maxminddb_test_helper.h" -#include -#include -#include -#include - -static void test_data_pool_new(void); -static void test_data_pool_destroy(void); -static void test_data_pool_alloc(void); -static void test_data_pool_to_list(void); -static bool create_and_check_list(size_t const, size_t const); -static void check_block_count(MMDB_entry_data_list_s const *const, - size_t const); - -int main(void) { - plan(NO_PLAN); - test_data_pool_new(); - test_data_pool_destroy(); - test_data_pool_alloc(); - test_data_pool_to_list(); - done_testing(); -} - -static void test_data_pool_new(void) { - { - MMDB_data_pool_s *const pool = data_pool_new(0); - ok(!pool, "size 0 is not valid"); - } - - { - MMDB_data_pool_s *const pool = data_pool_new(SIZE_MAX - 10); - ok(!pool, "very large size is not valid"); - } - - { - MMDB_data_pool_s *const pool = data_pool_new(512); - ok(pool != NULL, "size 512 is valid"); - cmp_ok(pool->size, "==", 512, "size is 512"); - cmp_ok(pool->used, "==", 0, "used size is 0"); - data_pool_destroy(pool); - } -} - -static void test_data_pool_destroy(void) { - { data_pool_destroy(NULL); } - - { - MMDB_data_pool_s *const pool = data_pool_new(512); - ok(pool != NULL, "created pool"); - data_pool_destroy(pool); - } -} - -static void test_data_pool_alloc(void) { - { - MMDB_data_pool_s *const pool = data_pool_new(1); - ok(pool != NULL, "created pool"); - cmp_ok(pool->used, "==", 0, "used size starts at 0"); - - MMDB_entry_data_list_s *const entry1 = data_pool_alloc(pool); - ok(entry1 != NULL, "allocated first entry"); - // Arbitrary so that we can recognize it. - entry1->entry_data.offset = (uint32_t)123; - - cmp_ok(pool->size, "==", 1, "size is still 1"); - cmp_ok(pool->used, "==", 1, "used size is 1 after taking one"); - - MMDB_entry_data_list_s *const entry2 = data_pool_alloc(pool); - ok(entry2 != NULL, "got another entry"); - ok(entry1 != entry2, "second entry is different from first entry"); - - cmp_ok(pool->size, "==", 2, "size is 2 (new block)"); - cmp_ok(pool->used, "==", 1, "used size is 1 in current block"); - - ok(entry1->entry_data.offset == 123, - "accessing the original entry's memory is ok"); - - data_pool_destroy(pool); - } - - { - size_t const initial_size = 10; - MMDB_data_pool_s *const pool = data_pool_new(initial_size); - ok(pool != NULL, "created pool"); - - MMDB_entry_data_list_s *entry1 = NULL; - for (size_t i = 0; i < initial_size; i++) { - MMDB_entry_data_list_s *const entry = data_pool_alloc(pool); - ok(entry != NULL, "got an entry"); - // Give each a unique number so we can check it. - entry->entry_data.offset = (uint32_t)i; - if (i == 0) { - entry1 = entry; - } - } - - cmp_ok(pool->size, "==", initial_size, "size is the initial size"); - cmp_ok(pool->used, "==", initial_size, "used size is as expected"); - - MMDB_entry_data_list_s *const entry = data_pool_alloc(pool); - ok(entry != NULL, "got an entry"); - entry->entry_data.offset = (uint32_t)initial_size; - - cmp_ok( - pool->size, "==", initial_size * 2, "size is the initial size*2"); - cmp_ok(pool->used, "==", 1, "used size is as expected"); - - MMDB_entry_data_list_s *const list = data_pool_to_list(pool); - - MMDB_entry_data_list_s *element = list; - for (size_t i = 0; i < initial_size + 1; i++) { - ok(element->entry_data.offset == (uint32_t)i, - "found offset %" PRIu32 ", should have %zu", - element->entry_data.offset, - i); - element = element->next; - } - - ok(entry1->entry_data.offset == (uint32_t)0, - "accessing entry1's original memory is ok after growing the pool"); - - data_pool_destroy(pool); - } -} - -static void test_data_pool_to_list(void) { - { - size_t const initial_size = 16; - MMDB_data_pool_s *const pool = data_pool_new(initial_size); - ok(pool != NULL, "created pool"); - - MMDB_entry_data_list_s *const entry1 = data_pool_alloc(pool); - ok(entry1 != NULL, "got an entry"); - - MMDB_entry_data_list_s *const list_one_element = - data_pool_to_list(pool); - ok(list_one_element != NULL, "got a list"); - ok(list_one_element == entry1, - "list's first element is the first we retrieved"); - ok(list_one_element->next == NULL, "list is one element in size"); - - MMDB_entry_data_list_s *const entry2 = data_pool_alloc(pool); - ok(entry2 != NULL, "got another entry"); - - MMDB_entry_data_list_s *const list_two_elements = - data_pool_to_list(pool); - ok(list_two_elements != NULL, "got a list"); - ok(list_two_elements == entry1, - "list's first element is the first we retrieved"); - ok(list_two_elements->next != NULL, "list has a second element"); - - MMDB_entry_data_list_s *const second_element = list_two_elements->next; - ok(second_element == entry2, - "second item in list is second we retrieved"); - ok(second_element->next == NULL, "list ends with the second element"); - - data_pool_destroy(pool); - } - - { - size_t const initial_size = 1; - MMDB_data_pool_s *const pool = data_pool_new(initial_size); - ok(pool != NULL, "created pool"); - - MMDB_entry_data_list_s *const entry1 = data_pool_alloc(pool); - ok(entry1 != NULL, "got an entry"); - - MMDB_entry_data_list_s *const list_one_element = - data_pool_to_list(pool); - ok(list_one_element != NULL, "got a list"); - ok(list_one_element == entry1, - "list's first element is the first we retrieved"); - ok(list_one_element->next == NULL, "list ends with this element"); - - data_pool_destroy(pool); - } - - { - size_t const initial_size = 2; - MMDB_data_pool_s *const pool = data_pool_new(initial_size); - ok(pool != NULL, "created pool"); - - MMDB_entry_data_list_s *const entry1 = data_pool_alloc(pool); - ok(entry1 != NULL, "got an entry"); - - MMDB_entry_data_list_s *const entry2 = data_pool_alloc(pool); - ok(entry2 != NULL, "got an entry"); - ok(entry1 != entry2, "second entry is different from the first"); - - MMDB_entry_data_list_s *const list_element1 = data_pool_to_list(pool); - ok(list_element1 != NULL, "got a list"); - ok(list_element1 == entry1, - "list's first element is the first we retrieved"); - - MMDB_entry_data_list_s *const list_element2 = list_element1->next; - ok(list_element2 == entry2, - "second element is the second we retrieved"); - ok(list_element2->next == NULL, "list ends with this element"); - - data_pool_destroy(pool); - } - - { - diag("starting test: fill one block save for one spot"); - ok(create_and_check_list(3, 2), "fill one block save for one spot"); - } - - { - diag("starting test: fill one block"); - ok(create_and_check_list(3, 3), "fill one block"); - } - - { - diag( - "starting test: fill one block and use one spot in the next block"); - ok(create_and_check_list(3, 3 + 1), - "fill one block and use one spot in the next block"); - } - - { - diag("starting test: fill two blocks save for one spot"); - ok(create_and_check_list(3, 3 + 3 * 2 - 1), - "fill two blocks save for one spot"); - } - - { - diag("starting test: fill two blocks"); - ok(create_and_check_list(3, 3 + 3 * 2), "fill two blocks"); - } - - { - diag("starting test: fill two blocks and use one spot in the next"); - ok(create_and_check_list(3, 3 + 3 * 2 + 1), - "fill two blocks and use one spot in the next"); - } - - { - diag("starting test: fill three blocks save for one spot"); - ok(create_and_check_list(3, 3 + 3 * 2 + 3 * 2 * 2 - 1), - "fill three blocks save for one spot"); - } - - { - diag("starting test: fill three blocks"); - ok(create_and_check_list(3, 3 + 3 * 2 + 3 * 2 * 2), - "fill three blocks"); - } - - // It would be nice to have a larger number of these, but it's expensive to - // run many. We currently hardcode what this will be anyway, so varying - // this is not very interesting. - size_t const initial_sizes[] = {1, 2, 32, 64, 128, 256}; - - size_t const max_element_count = 4096; - - for (size_t i = 0; i < sizeof(initial_sizes) / sizeof(initial_sizes[0]); - i++) { - size_t const initial_size = initial_sizes[i]; - - for (size_t element_count = 0; element_count < max_element_count; - element_count++) { - assert(create_and_check_list(initial_size, element_count)); - } - } -} - -// Use assert() rather than libtap as libtap is significantly slower and we run -// this frequently. -static bool create_and_check_list(size_t const initial_size, - size_t const element_count) { - MMDB_data_pool_s *const pool = data_pool_new(initial_size); - assert(pool != NULL); - - assert(pool->used == 0); - - // Hold on to the pointers as we initially see them so that we can check - // they are still valid after building the list. - MMDB_entry_data_list_s **const entry_array = - calloc(element_count, sizeof(MMDB_entry_data_list_s *)); - assert(entry_array != NULL); - - for (size_t i = 0; i < element_count; i++) { - MMDB_entry_data_list_s *const entry = data_pool_alloc(pool); - assert(entry != NULL); - - entry->entry_data.offset = (uint32_t)i; - - entry_array[i] = entry; - } - - MMDB_entry_data_list_s *const list = data_pool_to_list(pool); - - if (element_count == 0) { - assert(list == NULL); - data_pool_destroy(pool); - free(entry_array); - return true; - } - - assert(list != NULL); - - MMDB_entry_data_list_s *element = list; - for (size_t i = 0; i < element_count; i++) { - assert(element->entry_data.offset == (uint32_t)i); - - assert(element == entry_array[i]); - - element = element->next; - } - assert(element == NULL); - - check_block_count(list, initial_size); - - data_pool_destroy(pool); - free(entry_array); - return true; -} - -// Use assert() rather than libtap as libtap is significantly slower and we run -// this frequently. -static void check_block_count(MMDB_entry_data_list_s const *const list, - size_t const initial_size) { - size_t got_block_count = 0; - size_t got_element_count = 0; - - MMDB_entry_data_list_s const *element = list; - while (element) { - got_element_count++; - - if (element->pool) { - got_block_count++; - } - - element = element->next; - } - - // Because = * 2^(number of blocks) - double const a = ceil((double)got_element_count / (double)initial_size); - double const b = log2(a); - size_t const expected_block_count = ((size_t)b) + 1; - - assert(got_block_count == expected_block_count); -} diff --git a/3rd/libmaxminddb/t/data_entry_list_t.c b/3rd/libmaxminddb/t/data_entry_list_t.c deleted file mode 100644 index 2b595db76..000000000 --- a/3rd/libmaxminddb/t/data_entry_list_t.c +++ /dev/null @@ -1,430 +0,0 @@ -#include "maxminddb_test_helper.h" - -MMDB_entry_data_list_s * -test_array_value(MMDB_entry_data_list_s *entry_data_list) { - MMDB_entry_data_list_s *array = entry_data_list = entry_data_list->next; - cmp_ok(array->entry_data.type, - "==", - MMDB_DATA_TYPE_ARRAY, - "'array' key's value is an array"); - cmp_ok(array->entry_data.data_size, - "==", - 3, - "'array' key's value has 3 elements"); - - MMDB_entry_data_list_s *idx0 = entry_data_list = entry_data_list->next; - cmp_ok(idx0->entry_data.type, - "==", - MMDB_DATA_TYPE_UINT32, - "first array entry is a UINT32"); - cmp_ok(idx0->entry_data.uint32, "==", 1, "first array entry value is 1"); - - MMDB_entry_data_list_s *idx1 = entry_data_list = entry_data_list->next; - cmp_ok(idx1->entry_data.type, - "==", - MMDB_DATA_TYPE_UINT32, - "second array entry is a UINT32"); - cmp_ok(idx1->entry_data.uint32, "==", 2, "second array entry value is 2"); - - MMDB_entry_data_list_s *idx2 = entry_data_list = entry_data_list->next; - cmp_ok(idx2->entry_data.type, - "==", - MMDB_DATA_TYPE_UINT32, - "third array entry is a UINT32"); - cmp_ok(idx2->entry_data.uint32, "==", 3, "third array entry value is 3"); - - return entry_data_list; -} - -MMDB_entry_data_list_s * -test_boolean_value(MMDB_entry_data_list_s *entry_data_list) { - MMDB_entry_data_list_s *value = entry_data_list = entry_data_list->next; - - cmp_ok(value->entry_data.type, - "==", - MMDB_DATA_TYPE_BOOLEAN, - "'boolean' key's value is a boolean"); - ok(value->entry_data.boolean, "'boolean' key's value is true"); - - return entry_data_list; -} - -MMDB_entry_data_list_s * -test_bytes_value(MMDB_entry_data_list_s *entry_data_list) { - MMDB_entry_data_list_s *value = entry_data_list = entry_data_list->next; - - cmp_ok(value->entry_data.type, - "==", - MMDB_DATA_TYPE_BYTES, - "'bytes' key's value is bytes"); - uint8_t *bytes = malloc(value->entry_data.data_size); - if (NULL == bytes) { - BAIL_OUT("malloc failed"); - } - memcpy(bytes, value->entry_data.bytes, value->entry_data.data_size); - uint8_t expect[] = {0x00, 0x00, 0x00, 0x2a}; - - ok(memcmp(bytes, expect, 4) == 0, "got expected value for bytes key"); - - free((void *)bytes); - - return entry_data_list; -} - -MMDB_entry_data_list_s * -test_double_value(MMDB_entry_data_list_s *entry_data_list) { - MMDB_entry_data_list_s *value = entry_data_list = entry_data_list->next; - - cmp_ok(value->entry_data.type, - "==", - MMDB_DATA_TYPE_DOUBLE, - "'double' key's value is a double"); - - compare_double(value->entry_data.double_value, 42.123456); - - return entry_data_list; -} - -MMDB_entry_data_list_s * -test_float_value(MMDB_entry_data_list_s *entry_data_list) { - MMDB_entry_data_list_s *value = entry_data_list = entry_data_list->next; - - cmp_ok(value->entry_data.type, - "==", - MMDB_DATA_TYPE_FLOAT, - "'float' key's value is a float"); - - compare_float(value->entry_data.float_value, 1.1F); - - return entry_data_list; -} - -MMDB_entry_data_list_s * -test_int32_value(MMDB_entry_data_list_s *entry_data_list) { - MMDB_entry_data_list_s *value = entry_data_list = entry_data_list->next; - - cmp_ok(value->entry_data.type, - "==", - MMDB_DATA_TYPE_INT32, - "'int32' key's value is an int32"); - - int32_t expect = 1 << 28; - expect *= -1; - cmp_ok(value->entry_data.int32, - "==", - expect, - "got expected value for int32 key"); - - return entry_data_list; -} - -MMDB_entry_data_list_s * -test_arrayX_value(MMDB_entry_data_list_s *entry_data_list) { - MMDB_entry_data_list_s *arrayX = entry_data_list = entry_data_list->next; - cmp_ok(arrayX->entry_data.type, - "==", - MMDB_DATA_TYPE_ARRAY, - "'map{mapX}{arrayX}' key's value is an array"); - cmp_ok(arrayX->entry_data.data_size, - "==", - 3, - "'map{mapX}{arrayX}' key's value has 3 elements"); - - MMDB_entry_data_list_s *idx0 = entry_data_list = entry_data_list->next; - cmp_ok(idx0->entry_data.type, - "==", - MMDB_DATA_TYPE_UINT32, - "first array entry is a UINT32"); - cmp_ok(idx0->entry_data.uint32, "==", 7, "first array entry value is 7"); - - MMDB_entry_data_list_s *idx1 = entry_data_list = entry_data_list->next; - cmp_ok(idx1->entry_data.type, - "==", - MMDB_DATA_TYPE_UINT32, - "second array entry is a UINT32"); - cmp_ok(idx1->entry_data.uint32, "==", 8, "second array entry value is 8"); - - MMDB_entry_data_list_s *idx2 = entry_data_list = entry_data_list->next; - cmp_ok(idx2->entry_data.type, - "==", - MMDB_DATA_TYPE_UINT32, - "third array entry is a UINT32"); - cmp_ok(idx2->entry_data.uint32, "==", 9, "third array entry value is 9"); - - return entry_data_list; -} - -MMDB_entry_data_list_s * -test_mapX_key_value_pair(MMDB_entry_data_list_s *entry_data_list) { - MMDB_entry_data_list_s *mapX_key = entry_data_list = entry_data_list->next; - cmp_ok(mapX_key->entry_data.type, - "==", - MMDB_DATA_TYPE_UTF8_STRING, - "found a map key in 'map{mapX}'"); - const char *mapX_key_name = dup_entry_string_or_bail(mapX_key->entry_data); - - if (strcmp(mapX_key_name, "utf8_stringX") == 0) { - MMDB_entry_data_list_s *mapX_value = entry_data_list = - entry_data_list->next; - cmp_ok(mapX_value->entry_data.type, - "==", - MMDB_DATA_TYPE_UTF8_STRING, - "'map{mapX}{utf8_stringX}' type is utf8_string"); - const char *utf8_stringX_value = - dup_entry_string_or_bail(mapX_value->entry_data); - ok(strcmp(utf8_stringX_value, "hello") == 0, - "map{mapX}{utf8_stringX} value is 'hello'"); - free((void *)utf8_stringX_value); - } else if (strcmp(mapX_key_name, "arrayX") == 0) { - entry_data_list = test_arrayX_value(entry_data_list); - } else { - ok(0, "unknown key found in map{mapX} - %s", mapX_key_name); - } - - free((void *)mapX_key_name); - - return entry_data_list; -} - -MMDB_entry_data_list_s * -test_map_value(MMDB_entry_data_list_s *entry_data_list) { - MMDB_entry_data_list_s *map = entry_data_list = entry_data_list->next; - cmp_ok(map->entry_data.type, - "==", - MMDB_DATA_TYPE_MAP, - "'map' key's value is a map"); - cmp_ok(map->entry_data.data_size, - "==", - 1, - "'map' key's value has 1 key/value pair"); - - MMDB_entry_data_list_s *map_key_1 = entry_data_list = entry_data_list->next; - cmp_ok(map_key_1->entry_data.type, - "==", - MMDB_DATA_TYPE_UTF8_STRING, - "found a map key in 'map'"); - const char *map_key_1_name = - dup_entry_string_or_bail(map_key_1->entry_data); - ok(strcmp(map_key_1_name, "mapX") == 0, "key name is mapX"); - free((void *)map_key_1_name); - - MMDB_entry_data_list_s *mapX = entry_data_list = entry_data_list->next; - cmp_ok(mapX->entry_data.type, - "==", - MMDB_DATA_TYPE_MAP, - "'map{mapX}' key's value is a map"); - cmp_ok(mapX->entry_data.data_size, - "==", - 2, - "'map' key's value has 2 key/value pairs"); - - entry_data_list = test_mapX_key_value_pair(entry_data_list); - entry_data_list = test_mapX_key_value_pair(entry_data_list); - - return entry_data_list; -} - -MMDB_entry_data_list_s * -test_uint128_value(MMDB_entry_data_list_s *entry_data_list) { - MMDB_entry_data_list_s *value = entry_data_list = entry_data_list->next; - - cmp_ok(value->entry_data.type, - "==", - MMDB_DATA_TYPE_UINT128, - "'uint128' key's value is an uint128"); - -#if MMDB_UINT128_IS_BYTE_ARRAY - uint8_t expect[16] = {0x01, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00}; - ok(memcmp(value->entry_data.uint128, expect, 16) == 0, - "uint128 field is 2**120"); -#else - mmdb_uint128_t expect = 1; - expect <<= 120; - cmp_ok(value->entry_data.uint128, "==", expect, "uint128 field is 2**120"); -#endif - - return entry_data_list; -} - -MMDB_entry_data_list_s * -test_uint16_value(MMDB_entry_data_list_s *entry_data_list) { - MMDB_entry_data_list_s *value = entry_data_list = entry_data_list->next; - - cmp_ok(value->entry_data.type, - "==", - MMDB_DATA_TYPE_UINT16, - "'uint16' key's value is an uint16"); - uint16_t expect = 100; - ok(value->entry_data.uint16 == expect, "uint16 field is 100"); - - return entry_data_list; -} - -MMDB_entry_data_list_s * -test_uint32_value(MMDB_entry_data_list_s *entry_data_list) { - MMDB_entry_data_list_s *value = entry_data_list = entry_data_list->next; - - cmp_ok(value->entry_data.type, - "==", - MMDB_DATA_TYPE_UINT32, - "'uint32' key's value is an uint32"); - uint32_t expect = 1 << 28; - cmp_ok(value->entry_data.uint32, "==", expect, "uint32 field is 100"); - - return entry_data_list; -} - -MMDB_entry_data_list_s * -test_uint64_value(MMDB_entry_data_list_s *entry_data_list) { - MMDB_entry_data_list_s *value = entry_data_list = entry_data_list->next; - - cmp_ok(value->entry_data.type, - "==", - MMDB_DATA_TYPE_UINT64, - "'uint64' key's value is an uint64"); - uint64_t expect = 1; - expect <<= 60; - cmp_ok(value->entry_data.uint64, "==", expect, "uint64 field is 2**60"); - - return entry_data_list; -} - -MMDB_entry_data_list_s * -test_utf8_string_value(MMDB_entry_data_list_s *entry_data_list) { - MMDB_entry_data_list_s *value = entry_data_list = entry_data_list->next; - - cmp_ok(value->entry_data.type, - "==", - MMDB_DATA_TYPE_UTF8_STRING, - "'utf8_string' key's value is a string"); - const char *utf8_string = dup_entry_string_or_bail(value->entry_data); - // This is hex for "unicode! ☯ - ♫" as bytes - char expect[19] = {0x75, - 0x6e, - 0x69, - 0x63, - 0x6f, - 0x64, - 0x65, - 0x21, - 0x20, - 0xe2, - 0x98, - 0xaf, - 0x20, - 0x2d, - 0x20, - 0xe2, - 0x99, - 0xab, - 0x00}; - - is(utf8_string, expect, "got expected value for utf8_string key"); - - free((void *)utf8_string); - - return entry_data_list; -} - -void run_tests(int mode, const char *description) { - const char *filename = "MaxMind-DB-test-decoder.mmdb"; - const char *path = test_database_path(filename); - MMDB_s *mmdb = open_ok(path, mode, description); - free((void *)path); - - char *ip = "1.1.1.1"; - MMDB_lookup_result_s result = - lookup_string_ok(mmdb, ip, filename, description); - - MMDB_entry_data_list_s *entry_data_list, *first; - int status = MMDB_get_entry_data_list(&result.entry, &entry_data_list); - - if (MMDB_SUCCESS != status) { - BAIL_OUT("MMDB_get_entry_data_list failed with %s", - MMDB_strerror(status)); - } else { - cmp_ok( - status, "==", MMDB_SUCCESS, "MMDB_get_entry_data_list succeeded"); - } - - first = entry_data_list; - - cmp_ok(entry_data_list->entry_data.type, - "==", - MMDB_DATA_TYPE_MAP, - "first entry in entry data list is a map"); - cmp_ok(entry_data_list->entry_data.data_size, - "==", - 12, - "first map in entry data list has 12 k/v pairs"); - - while (1) { - MMDB_entry_data_list_s *key = entry_data_list = entry_data_list->next; - - if (!key) { - break; - } - - cmp_ok(key->entry_data.type, - "==", - MMDB_DATA_TYPE_UTF8_STRING, - "found a map key"); - - const char *key_name = dup_entry_string_or_bail(key->entry_data); - if (strcmp(key_name, "array") == 0) { - entry_data_list = test_array_value(entry_data_list); - } else if (strcmp(key_name, "boolean") == 0) { - entry_data_list = test_boolean_value(entry_data_list); - } else if (strcmp(key_name, "bytes") == 0) { - entry_data_list = test_bytes_value(entry_data_list); - } else if (strcmp(key_name, "double") == 0) { - entry_data_list = test_double_value(entry_data_list); - } else if (strcmp(key_name, "float") == 0) { - entry_data_list = test_float_value(entry_data_list); - } else if (strcmp(key_name, "int32") == 0) { - entry_data_list = test_int32_value(entry_data_list); - } else if (strcmp(key_name, "map") == 0) { - entry_data_list = test_map_value(entry_data_list); - } else if (strcmp(key_name, "uint128") == 0) { - entry_data_list = test_uint128_value(entry_data_list); - } else if (strcmp(key_name, "uint16") == 0) { - entry_data_list = test_uint16_value(entry_data_list); - } else if (strcmp(key_name, "uint32") == 0) { - entry_data_list = test_uint32_value(entry_data_list); - } else if (strcmp(key_name, "uint64") == 0) { - entry_data_list = test_uint64_value(entry_data_list); - } else if (strcmp(key_name, "utf8_string") == 0) { - entry_data_list = test_utf8_string_value(entry_data_list); - } else { - ok(0, "unknown key found in map - %s", key_name); - } - - free((void *)key_name); - } - - MMDB_free_entry_data_list(first); - - MMDB_close(mmdb); - free(mmdb); -} - -int main(void) { - plan(NO_PLAN); - for_all_modes(&run_tests); - done_testing(); -} diff --git a/3rd/libmaxminddb/t/data_types_t.c b/3rd/libmaxminddb/t/data_types_t.c deleted file mode 100644 index fa2dde966..000000000 --- a/3rd/libmaxminddb/t/data_types_t.c +++ /dev/null @@ -1,533 +0,0 @@ -#include "maxminddb_test_helper.h" - -void test_all_data_types(MMDB_lookup_result_s *result, - const char *ip, - const char *UNUSED(filename), - const char *mode_desc) { - { - char description[500]; - snprintf( - description, 500, "utf8_string field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = data_ok(result, - MMDB_DATA_TYPE_UTF8_STRING, - description, - "utf8_string", - NULL); - const char *string = mmdb_strndup(data.utf8_string, data.data_size); - // This is hex for "unicode! ☯ - ♫" as bytes - char expect[19] = {0x75, - 0x6e, - 0x69, - 0x63, - 0x6f, - 0x64, - 0x65, - 0x21, - 0x20, - 0xe2, - 0x98, - 0xaf, - 0x20, - 0x2d, - 0x20, - 0xe2, - 0x99, - 0xab, - 0x00}; - is(string, expect, "got expected utf8_string value"); - - free((char *)string); - } - - { - char description[500]; - snprintf(description, 500, "double field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_DOUBLE, description, "double", NULL); - - compare_double(data.double_value, 42.123456); - } - - { - char description[500]; - snprintf(description, 500, "float field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_FLOAT, description, "float", NULL); - - compare_float(data.float_value, 1.1F); - } - - { - char description[500]; - snprintf(description, 500, "bytes field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_BYTES, description, "bytes", NULL); - uint8_t expect[] = {0x00, 0x00, 0x00, 0x2a}; - ok(memcmp((uint8_t *)data.bytes, expect, 4) == 0, - "bytes field has expected value"); - } - - { - char description[500]; - snprintf(description, 500, "uint16 field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_UINT16, description, "uint16", NULL); - uint16_t expect = 100; - ok(data.uint16 == expect, "uint16 field is 100"); - } - - { - char description[500]; - snprintf(description, 500, "uint32 field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_UINT32, description, "uint32", NULL); - uint32_t expect = 1 << 28; - cmp_ok(data.uint32, "==", expect, "uint32 field is 2**28"); - } - - { - char description[500]; - snprintf(description, 500, "int32 field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_INT32, description, "int32", NULL); - int32_t expect = 1 << 28; - expect *= -1; - cmp_ok(data.int32, "==", expect, "int32 field is -(2**28)"); - } - - { - char description[500]; - snprintf(description, 500, "uint64 field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_UINT64, description, "uint64", NULL); - uint64_t expect = 1; - expect <<= 60; - cmp_ok(data.uint64, "==", expect, "uint64 field is 2**60"); - } - - { - char description[500]; - snprintf(description, 500, "uint128 field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = data_ok( - result, MMDB_DATA_TYPE_UINT128, description, "uint128", NULL); -#if MMDB_UINT128_IS_BYTE_ARRAY - uint8_t expect[16] = {0x01, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00}; - ok(memcmp(data.uint128, expect, 16) == 0, "uint128 field is 2**120"); -#else - mmdb_uint128_t expect = 1; - expect <<= 120; - cmp_ok(data.uint128, "==", expect, "uint128 field is 2**120"); -#endif - } - - { - char description[500]; - snprintf(description, 500, "boolean field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = data_ok( - result, MMDB_DATA_TYPE_BOOLEAN, description, "boolean", NULL); - cmp_ok(data.boolean, "==", true, "boolean field is true"); - } - - { - char description[500]; - snprintf(description, 500, "array field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_ARRAY, description, "array", NULL); - ok(data.data_size == 3, "array field has 3 elements"); - - snprintf(description, 500, "array[0] for %s - %s", ip, mode_desc); - data = data_ok( - result, MMDB_DATA_TYPE_UINT32, description, "array", "0", NULL); - ok(data.uint32 == 1, "array[0] is 1"); - - snprintf(description, 500, "array[1] for %s - %s", ip, mode_desc); - data = data_ok( - result, MMDB_DATA_TYPE_UINT32, description, "array", "1", NULL); - ok(data.uint32 == 2, "array[1] is 1"); - - snprintf(description, 500, "array[2] for %s - %s", ip, mode_desc); - data = data_ok( - result, MMDB_DATA_TYPE_UINT32, description, "array", "2", NULL); - ok(data.uint32 == 3, "array[2] is 1"); - } - - { - char description[500]; - snprintf(description, 500, "map field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_MAP, description, "map", NULL); - ok(data.data_size == 1, "map field has 1 element"); - - snprintf(description, 500, "map{mapX} for %s - %s", ip, mode_desc); - - data = data_ok( - result, MMDB_DATA_TYPE_MAP, description, "map", "mapX", NULL); - ok(data.data_size == 2, "map{mapX} field has 2 elements"); - - snprintf(description, - 500, - "map{mapX}{utf8_stringX} for %s - %s", - ip, - mode_desc); - - data = data_ok(result, - MMDB_DATA_TYPE_UTF8_STRING, - description, - "map", - "mapX", - "utf8_stringX", - NULL); - const char *string = mmdb_strndup(data.utf8_string, data.data_size); - is(string, "hello", "map{mapX}{utf8_stringX} is 'hello'"); - free((char *)string); - - snprintf( - description, 500, "map{mapX}{arrayX} for %s - %s", ip, mode_desc); - data = data_ok(result, - MMDB_DATA_TYPE_ARRAY, - description, - "map", - "mapX", - "arrayX", - NULL); - ok(data.data_size == 3, "map{mapX}{arrayX} field has 3 elements"); - - snprintf(description, - 500, - "map{mapX}{arrayX}[0] for %s - %s", - ip, - mode_desc); - data = data_ok(result, - MMDB_DATA_TYPE_UINT32, - description, - "map", - "mapX", - "arrayX", - "0", - NULL); - ok(data.uint32 == 7, "map{mapX}{arrayX}[0] is 7"); - - snprintf(description, - 500, - "map{mapX}{arrayX}[1] for %s - %s", - ip, - mode_desc); - data = data_ok(result, - MMDB_DATA_TYPE_UINT32, - description, - "map", - "mapX", - "arrayX", - "1", - NULL); - ok(data.uint32 == 8, "map{mapX}{arrayX}[1] is 8"); - - snprintf(description, - 500, - "map{mapX}{arrayX}[2] for %s - %s", - ip, - mode_desc); - data = data_ok(result, - MMDB_DATA_TYPE_UINT32, - description, - "map", - "mapX", - "arrayX", - "2", - NULL); - ok(data.uint32 == 9, "map{mapX}{arrayX}[2] is 9"); - } -} - -void test_all_data_types_as_zero(MMDB_lookup_result_s *result, - const char *ip, - const char *UNUSED(filename), - const char *mode_desc) { - { - char description[500]; - snprintf( - description, 500, "utf8_string field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = data_ok(result, - MMDB_DATA_TYPE_UTF8_STRING, - description, - "utf8_string", - NULL); - is(data.utf8_string, "", "got expected utf8_string value (NULL)"); - } - - { - char description[500]; - snprintf(description, 500, "double field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_DOUBLE, description, "double", NULL); - - compare_double(data.double_value, 0.0); - } - - { - char description[500]; - snprintf(description, 500, "float field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_FLOAT, description, "float", NULL); - - compare_float(data.float_value, 0.0F); - } - - { - char description[500]; - snprintf(description, 500, "bytes field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_BYTES, description, "bytes", NULL); - ok(data.data_size == 0, "bytes field data_size is 0"); - /* In C does it makes sense to write something like this? - uint8_t expect[0] = {}; - ok(memcmp(data.bytes, expect, 0) == 0, "got expected bytes value - (NULL)"); */ - } - - { - char description[500]; - snprintf(description, 500, "uint16 field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_UINT16, description, "uint16", NULL); - uint16_t expect = 0; - ok(data.uint16 == expect, "uint16 field is 0"); - } - - { - char description[500]; - snprintf(description, 500, "uint32 field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_UINT32, description, "uint32", NULL); - uint32_t expect = 0; - cmp_ok(data.uint32, "==", expect, "uint32 field is 0"); - } - - { - char description[500]; - snprintf(description, 500, "int32 field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_INT32, description, "int32", NULL); - int32_t expect = 0; - expect *= -1; - cmp_ok(data.int32, "==", expect, "int32 field is 0"); - } - - { - char description[500]; - snprintf(description, 500, "uint64 field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_UINT64, description, "uint64", NULL); - uint64_t expect = 0; - cmp_ok(data.uint64, "==", expect, "uint64 field is 0"); - } - - { - char description[500]; - snprintf(description, 500, "uint128 field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = data_ok( - result, MMDB_DATA_TYPE_UINT128, description, "uint128", NULL); -#if MMDB_UINT128_IS_BYTE_ARRAY - uint8_t expect[16] = {0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00}; - ok(memcmp(data.uint128, expect, 16) == 0, "uint128 field is 0"); -#else - mmdb_uint128_t expect = 0; - cmp_ok(data.uint128, "==", expect, "uint128 field is 0"); -#endif - } - - { - char description[500]; - snprintf(description, 500, "boolean field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = data_ok( - result, MMDB_DATA_TYPE_BOOLEAN, description, "boolean", NULL); - cmp_ok(data.boolean, "==", false, "boolean field is false"); - } - - { - char description[500]; - snprintf(description, 500, "array field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_ARRAY, description, "array", NULL); - ok(data.data_size == 0, "array field has 0 elements"); - } - - { - char description[500]; - snprintf(description, 500, "map field for %s - %s", ip, mode_desc); - - MMDB_entry_data_s data = - data_ok(result, MMDB_DATA_TYPE_MAP, description, "map", NULL); - ok(data.data_size == 0, "map field has 0 elements"); - } -} - -void run_tests(int mode, const char *mode_desc) { - const char *filename = "MaxMind-DB-test-decoder.mmdb"; - const char *path = test_database_path(filename); - MMDB_s *mmdb = open_ok(path, mode, mode_desc); - - // All of the remaining tests require an open mmdb - if (NULL == mmdb) { - diag("could not open %s - skipping remaining tests", path); - return; - } - - free((void *)path); - - { - const char *ip = "not an ip"; - - int gai_error, mmdb_error; - MMDB_lookup_result_s result = - MMDB_lookup_string(mmdb, ip, &gai_error, &mmdb_error); - - cmp_ok(gai_error, - "==", - EAI_NONAME, - "MMDB_lookup populates getaddrinfo error properly - %s", - ip); - - ok(!result.found_entry, - "no result entry struct returned for invalid IP address '%s'", - ip); - } - - { - const char *ip = "e900::"; - MMDB_lookup_result_s result = - lookup_string_ok(mmdb, ip, filename, mode_desc); - - ok(!result.found_entry, - "no result entry struct returned for IP address not in the database " - "- %s - %s - %s", - ip, - filename, - mode_desc); - } - - { - const char *ip = "::1.1.1.1"; - MMDB_lookup_result_s result = - lookup_string_ok(mmdb, ip, filename, mode_desc); - - ok(result.found_entry, - "got a result entry struct for IP address in the database - %s - %s " - "- %s", - ip, - filename, - mode_desc); - - cmp_ok(result.entry.offset, - ">", - 0, - "result.entry.offset > 0 for address in the database - %s - %s " - "- %s", - ip, - filename, - mode_desc); - - test_all_data_types(&result, ip, filename, mode_desc); - } - - { - const char *ip = "::4.5.6.7"; - MMDB_lookup_result_s result = - lookup_string_ok(mmdb, ip, filename, mode_desc); - - ok(result.found_entry, - "got a result entry struct for IP address in the database - %s - %s " - "- %s", - ip, - filename, - mode_desc); - - cmp_ok(result.entry.offset, - ">", - 0, - "result.entry.offset > 0 for address in the database - %s - %s " - "- %s", - ip, - filename, - mode_desc); - - test_all_data_types(&result, ip, filename, mode_desc); - } - - { - const char *ip = "::0.0.0.0"; - MMDB_lookup_result_s result = - lookup_string_ok(mmdb, ip, filename, mode_desc); - - ok(result.found_entry, - "got a result entry struct for IP address in the database - %s - %s " - "- %s", - ip, - filename, - mode_desc); - - test_all_data_types_as_zero(&result, ip, filename, mode_desc); - } - - MMDB_close(mmdb); - free(mmdb); -} - -int main(void) { - plan(NO_PLAN); - for_all_modes(&run_tests); - done_testing(); -} diff --git a/3rd/libmaxminddb/t/dump_t.c b/3rd/libmaxminddb/t/dump_t.c deleted file mode 100644 index 4cb59af4d..000000000 --- a/3rd/libmaxminddb/t/dump_t.c +++ /dev/null @@ -1,98 +0,0 @@ -#define _XOPEN_SOURCE 700 -#include "maxminddb_test_helper.h" - -#ifdef HAVE_OPEN_MEMSTREAM -void run_tests(int mode, const char *mode_desc) { - const char *filename = "MaxMind-DB-test-decoder.mmdb"; - const char *path = test_database_path(filename); - MMDB_s *mmdb = open_ok(path, mode, mode_desc); - free((void *)path); - - const char *ip = "1.1.1.1"; - MMDB_lookup_result_s result = - lookup_string_ok(mmdb, ip, filename, mode_desc); - - MMDB_entry_data_list_s *entry_data_list; - int status = MMDB_get_entry_data_list(&result.entry, &entry_data_list); - - ok(MMDB_SUCCESS == status, "MMDB_get_entry_data_list is successful"); - - char *dump_output; - size_t dump_size; - FILE *stream = open_memstream(&dump_output, &dump_size); - status = MMDB_dump_entry_data_list(stream, entry_data_list, 0); - fclose(stream); - MMDB_free_entry_data_list(entry_data_list); - - ok(MMDB_SUCCESS == status, - "MMDB_dump_entry_data_list is successful - %s", - mode_desc); - - cmp_ok(dump_size, ">", 0, "MMDB_dump produced output - %s", mode_desc); - - char *expect[] = {"{", - " \"array\": ", - " [", - " 1 ", - " 2 ", - " 3 ", - " ]", - " \"boolean\": ", - " true ", - " \"bytes\": ", - " 0000002A ", - " \"double\": ", - " 42.123456 ", - " \"float\": ", - " 1.100000 ", - " \"int32\": ", - " -268435456 ", - " \"map\": ", - " {", - " \"mapX\": ", - " {", - " \"arrayX\": ", - " [", - " 7 ", - " 8 ", - " 9 ", - " ]", - " \"utf8_stringX\": ", - " \"hello\" ", - " }", - " }", - " \"uint128\": ", - " 0x01000000000000000000000000000000 ", - " \"uint16\": ", - " 100 ", - " \"uint32\": ", - " 268435456 ", - " \"uint64\": ", - " 1152921504606846976 ", - " \"utf8_string\": ", - " \"unicode! ☯ - ♫\" ", - "}"}; - - for (int i = 0; i < 42; i++) { - ok((strstr(dump_output, expect[i]) != NULL), - "dump output contains expected line (%s) - %s", - expect[i], - mode_desc); - } - - free(dump_output); - - MMDB_close(mmdb); - free(mmdb); -} - -int main(void) { - plan(NO_PLAN); - for_all_modes(&run_tests); - done_testing(); -} -#else -int main(void) { - plan(SKIP_ALL, "This test requires the open_memstream() function"); -} -#endif diff --git a/3rd/libmaxminddb/t/external_symbols_t.pl b/3rd/libmaxminddb/t/external_symbols_t.pl deleted file mode 100755 index e1301e8e1..000000000 --- a/3rd/libmaxminddb/t/external_symbols_t.pl +++ /dev/null @@ -1,106 +0,0 @@ -#!/usr/bin/env perl - -use strict; -use warnings; - -use FindBin qw( $Bin ); - -_skip_tests_if_required_modules_are_not_present(); -_skip_tests_if_nm_is_not_present(); -_test_libs_external_symbols(); - -done_testing(); - -sub _skip_tests_if_required_modules_are_not_present { - eval <<'EOF'; - use Test::More 0.88; - use IPC::Run3 qw( run3 ); -EOF - - if ($@) { - print - "1..0 # skip all tests skipped - these tests need the Test::More 0.88, IPC::Run3 modules:\n"; - print "$@"; - exit 0; - } -} - -sub _skip_tests_if_nm_is_not_present { - run3( - [ 'nm', '-V' ], - \undef, - \undef, - \undef, - ); - - my $exit_status = $? >> 8; - if ($exit_status) { - print - "1..0 # skipp all tests skipped - this test requires the command line utility `nm`.\n"; - exit 0; - } -} - -sub _test_libs_external_symbols { - my @libs = _libs_to_test(); - - if (@libs) { - for my $lib (@libs) { - _test_lib_external_symbols($lib); - } - } - else { - fail('No libs were found to test'); - } -} - -sub _libs_to_test { - my $lib_dir = "$Bin/../src/.libs"; - opendir my $dh, $lib_dir - or die "Failed to open the lib dir at $lib_dir for reading: $!\n"; - my @libs = map { $lib_dir . q{/} . $_ } - grep { $_ =~ m/\.so$/ } readdir $dh; - closedir $dh; - - return @libs; -} - -sub _test_lib_external_symbols { - my $lib = shift; - - my $stdout; - my $stderr; - run3( - [ 'nm', '-g', '--defined-only', $lib ], - \undef, - \$stdout, - \$stderr, - ); - - my $exit_status = $? >> 8; - ok( !$exit_status, 'nm returned a non-error status' ) - or diag($stderr); - - my @external_symbols = _extract_external_symbols($stdout); - is_deeply( - [ grep { $_ !~ m/^MMDB_/ } @external_symbols ], - [], - "$lib exports only MMDB_ symbols" - ); -} - -sub _extract_external_symbols { - my $nm_output = shift; - - my @lines = split /\r\n|\r|\n/, $nm_output; - - my @external_symbols; - for my $line (@lines) { - my @fields = split /\s+/, $line; - die "Unexpected nm output for line $line\n" - if @fields != 3; - push @external_symbols, $fields[2]; - } - - return @external_symbols; -} diff --git a/3rd/libmaxminddb/t/get_value_pointer_bug_t.c b/3rd/libmaxminddb/t/get_value_pointer_bug_t.c deleted file mode 100644 index ebb91595c..000000000 --- a/3rd/libmaxminddb/t/get_value_pointer_bug_t.c +++ /dev/null @@ -1,71 +0,0 @@ -#include "maxminddb_test_helper.h" - -/* This test exercises a bug found in MMDB_get_value for certain types of - * nested data structures which contain pointers. See - * https://github.com/maxmind/libmaxminddb/issues/2 and - * https://github.com/maxmind/libmaxminddb/issues/3. - * - * There is also the potential for a similar bug when looking up a value by - * path in an array. This is not tested (yet) as we don't have the right test - * data for it. - * - * These tests are somewhat fragile since they depend on a specific data - * layout in the database. Ideally the test would check that this layout - * exists before checking to see if the lookups are correct. - */ - -void test_one_ip(MMDB_s *mmdb, - const char *filename, - const char *mode_desc, - char *ip, - char *country_code) { - MMDB_lookup_result_s result = - lookup_string_ok(mmdb, ip, filename, mode_desc); - - MMDB_entry_data_s entry_data = data_ok(&result, - MMDB_DATA_TYPE_UTF8_STRING, - "country{iso_code}", - "country", - "iso_code", - NULL); - - if (ok(entry_data.has_data, "found data for country{iso_code}")) { - char *string = - mmdb_strndup(entry_data.utf8_string, entry_data.data_size); - if (!string) { - ok(0, "mmdb_strndup() call failed"); - exit(1); - } - if (!ok(strcmp(string, country_code) == 0, - "iso_code is %s", - country_code)) { - diag(" value is %s", string); - } - free(string); - } -} - -void run_tests(int mode, const char *mode_desc) { - const char *filename = "GeoIP2-City-Test.mmdb"; - const char *path = test_database_path(filename); - MMDB_s *mmdb = open_ok(path, mode, mode_desc); - free((void *)path); - - /* This exercises a bug where the entire top-level value is a pointer to - * another part of the data section. */ - test_one_ip(mmdb, filename, mode_desc, "2001:218::", "JP"); - /* This exercises a bug where one subnet's data shares part of the data - * with another subnet - in this case it is the "country" key (and others) - * in the top level map. We are testing that the "country" key's value is - * handled correctly. The value _should_ be a pointer to another map. */ - test_one_ip(mmdb, filename, mode_desc, "81.2.69.160", "GB"); - - MMDB_close(mmdb); - free(mmdb); -} - -int main(void) { - plan(NO_PLAN); - for_all_modes(&run_tests); - done_testing(); -} diff --git a/3rd/libmaxminddb/t/get_value_t.c b/3rd/libmaxminddb/t/get_value_t.c deleted file mode 100644 index e3720bb43..000000000 --- a/3rd/libmaxminddb/t/get_value_t.c +++ /dev/null @@ -1,404 +0,0 @@ -#include "maxminddb_test_helper.h" - -void test_array_0_result(int status, - MMDB_entry_data_s entry_data, - char *function) { - cmp_ok(status, - "==", - MMDB_SUCCESS, - "status for %s() is MMDB_SUCCESS - array[0]", - function); - ok(entry_data.has_data, "found a value for array[0]"); - cmp_ok(entry_data.type, - "==", - MMDB_DATA_TYPE_UINT32, - "returned entry type is uint32 - array[0]"); - cmp_ok(entry_data.uint32, "==", 1, "entry value is 1 - array[0]"); -} - -void test_array_2_result(int status, - MMDB_entry_data_s entry_data, - char *function) { - cmp_ok(status, - "==", - MMDB_SUCCESS, - "status for %s() is MMDB_SUCCESS - array[2]", - function); - ok(entry_data.has_data, "found a value for array[2]"); - cmp_ok(entry_data.type, - "==", - MMDB_DATA_TYPE_UINT32, - "returned entry type is uint32 - array[2]"); - cmp_ok(entry_data.uint32, "==", 3, "entry value is 3 - array[2]"); -} - -void test_array_minus_3_result(int status, - MMDB_entry_data_s entry_data, - char *function) { - cmp_ok(status, - "==", - MMDB_SUCCESS, - "status for %s() is MMDB_SUCCESS - array[-3]", - function); - ok(entry_data.has_data, "found a value for array[-3]"); - cmp_ok(entry_data.type, - "==", - MMDB_DATA_TYPE_UINT32, - "returned entry type is uint32 - array[-3]"); - cmp_ok(entry_data.uint32, "==", 1, "entry value is 1 - array[-3]"); -} - -void test_array_minus_1_result(int status, - MMDB_entry_data_s entry_data, - char *function) { - cmp_ok(status, - "==", - MMDB_SUCCESS, - "status for %s() is MMDB_SUCCESS - array[-1]", - function); - ok(entry_data.has_data, "found a value for array[-1]"); - cmp_ok(entry_data.type, - "==", - MMDB_DATA_TYPE_UINT32, - "returned entry type is uint32 - array[-1]"); - cmp_ok(entry_data.uint32, "==", 3, "entry value is 3 - array[-1]"); -} - -int call_vget_value(MMDB_entry_s *entry, MMDB_entry_data_s *entry_data, ...) { - va_list keys; - va_start(keys, entry_data); - - int status = MMDB_vget_value(entry, entry_data, keys); - - va_end(keys); - - return status; -} - -void test_simple_structure(int mode, const char *mode_desc) { - const char *filename = "MaxMind-DB-test-decoder.mmdb"; - const char *path = test_database_path(filename); - MMDB_s *mmdb = open_ok(path, mode, mode_desc); - free((void *)path); - - const char *ip = "1.1.1.1"; - MMDB_lookup_result_s result = - lookup_string_ok(mmdb, ip, filename, mode_desc); - - { - MMDB_entry_data_s entry_data; - const char *lookup_path[] = {"array", "0", NULL}; - int status = MMDB_aget_value(&result.entry, &entry_data, lookup_path); - test_array_0_result(status, entry_data, "MMDB_aget_value"); - - status = MMDB_get_value(&result.entry, &entry_data, "array", "0", NULL); - test_array_0_result(status, entry_data, "MMDB_get_value"); - - status = - call_vget_value(&result.entry, &entry_data, "array", "0", NULL); - test_array_0_result(status, entry_data, "MMDB_vget_value"); - } - - { - MMDB_entry_data_s entry_data; - const char *lookup_path[] = {"array", "2", NULL}; - int status = MMDB_aget_value(&result.entry, &entry_data, lookup_path); - test_array_2_result(status, entry_data, "MMDB_aget_value"); - - status = MMDB_get_value(&result.entry, &entry_data, "array", "2", NULL); - test_array_2_result(status, entry_data, "MMDB_get_value"); - - status = - call_vget_value(&result.entry, &entry_data, "array", "2", NULL); - test_array_2_result(status, entry_data, "MMDB_vget_value"); - } - - { - MMDB_entry_data_s entry_data; - int status = - MMDB_get_value(&result.entry, &entry_data, "array", "zero", NULL); - cmp_ok(status, - "==", - MMDB_LOOKUP_PATH_DOES_NOT_MATCH_DATA_ERROR, - "MMDB_get_value() returns error on non-integer array index"); - } - - { - MMDB_entry_data_s entry_data; - const char *lookup_path[] = {"array", "-1", NULL}; - int status = MMDB_aget_value(&result.entry, &entry_data, lookup_path); - test_array_minus_1_result(status, entry_data, "MMDB_aget_value"); - - status = - MMDB_get_value(&result.entry, &entry_data, "array", "-1", NULL); - test_array_minus_1_result(status, entry_data, "MMDB_get_value"); - - status = - call_vget_value(&result.entry, &entry_data, "array", "-1", NULL); - test_array_minus_1_result(status, entry_data, "MMDB_vget_value"); - } - - { - MMDB_entry_data_s entry_data; - const char *lookup_path[] = {"array", "-3", NULL}; - int status = MMDB_aget_value(&result.entry, &entry_data, lookup_path); - test_array_minus_3_result(status, entry_data, "MMDB_aget_value"); - - status = - MMDB_get_value(&result.entry, &entry_data, "array", "-3", NULL); - test_array_minus_3_result(status, entry_data, "MMDB_get_value"); - - status = - call_vget_value(&result.entry, &entry_data, "array", "-3", NULL); - test_array_minus_3_result(status, entry_data, "MMDB_vget_value"); - } - - { - MMDB_entry_data_s entry_data; - int status = - MMDB_get_value(&result.entry, &entry_data, "array", "-4", NULL); - cmp_ok(status, - "==", - MMDB_LOOKUP_PATH_DOES_NOT_MATCH_DATA_ERROR, - "MMDB_get_value() returns error on too large negative integer"); - } - - { - MMDB_entry_data_s entry_data; - int status = MMDB_get_value( - &result.entry, &entry_data, "array", "-18446744073709551616", NULL); - cmp_ok( - status, - "==", - MMDB_INVALID_LOOKUP_PATH_ERROR, - "MMDB_get_value() returns error on integer smaller than LONG_MIN"); - } - - { - MMDB_entry_data_s entry_data; - int status = MMDB_get_value( - &result.entry, &entry_data, "array", "18446744073709551616", NULL); - cmp_ok( - status, - "==", - MMDB_INVALID_LOOKUP_PATH_ERROR, - "MMDB_get_value() returns error on integer larger than LONG_MAX"); - } - - MMDB_close(mmdb); - free(mmdb); -} - -void test_complex_map_a_result(int status, - MMDB_entry_data_s entry_data, - char *function) { - cmp_ok(status, - "==", - MMDB_SUCCESS, - "status for %s() is MMDB_SUCCESS - map1{map2}{array}[0]{map3}{a}", - function); - ok(entry_data.has_data, "found a value for map1{map2}{array}[0]{map3}{a}"); - cmp_ok(entry_data.type, - "==", - MMDB_DATA_TYPE_UINT32, - "returned entry type is uint32 - map1{map2}{array}[0]{map3}{a}"); - cmp_ok(entry_data.uint32, - "==", - 1, - "entry value is 1 - map1{map2}{array}[0]{map3}{a}"); -} - -void test_complex_map_c_result(int status, - MMDB_entry_data_s entry_data, - char *function) { - cmp_ok(status, - "==", - MMDB_SUCCESS, - "status for %s() is MMDB_SUCCESS - map1{map2}{array}[0]{map3}{c}", - function); - ok(entry_data.has_data, "found a value for map1{map2}{array}[0]{map3}{c}"); - cmp_ok(entry_data.type, - "==", - MMDB_DATA_TYPE_UINT32, - "returned entry type is uint32 - map1{map2}{array}[0]{map3}{c}"); - cmp_ok(entry_data.uint32, - "==", - 3, - "entry value is 3 - map1{map2}{array}[0]{map3}{c}"); -} - -void test_no_result(int status, - MMDB_entry_data_s entry_data, - char *function, - char *path_description) { - cmp_ok(status, - "==", - MMDB_LOOKUP_PATH_DOES_NOT_MATCH_DATA_ERROR, - "status for %s() is MMDB_LOOKUP_PATH_DOES_NOT_MATCH_DATA_ERROR - %s", - function, - path_description); - ok(!entry_data.has_data, "did not find a value for %s", path_description); -} - -void test_nested_structure(int mode, const char *mode_desc) { - const char *filename = "MaxMind-DB-test-nested.mmdb"; - const char *path = test_database_path(filename); - MMDB_s *mmdb = open_ok(path, mode, mode_desc); - free((void *)path); - - const char *ip = "1.1.1.1"; - MMDB_lookup_result_s result = - lookup_string_ok(mmdb, ip, filename, mode_desc); - - { - MMDB_entry_data_s entry_data; - const char *lookup_path[] = { - "map1", "map2", "array", "0", "map3", "a", NULL}; - int status = MMDB_aget_value(&result.entry, &entry_data, lookup_path); - test_complex_map_a_result(status, entry_data, "MMDB_aget_value"); - - status = MMDB_get_value(&result.entry, - &entry_data, - "map1", - "map2", - "array", - "0", - "map3", - "a", - NULL); - test_complex_map_a_result(status, entry_data, "MMDB_get_value"); - - status = call_vget_value(&result.entry, - &entry_data, - "map1", - "map2", - "array", - "0", - "map3", - "a", - NULL); - test_complex_map_a_result(status, entry_data, "MMDB_vget_value"); - } - - { - MMDB_entry_data_s entry_data; - const char *lookup_path[] = { - "map1", "map2", "array", "0", "map3", "c", NULL}; - int status = MMDB_aget_value(&result.entry, &entry_data, lookup_path); - test_complex_map_c_result(status, entry_data, "MMDB_aget_value"); - - status = MMDB_get_value(&result.entry, - &entry_data, - "map1", - "map2", - "array", - "0", - "map3", - "c", - NULL); - test_complex_map_c_result(status, entry_data, "MMDB_get_value"); - - status = call_vget_value(&result.entry, - &entry_data, - "map1", - "map2", - "array", - "0", - "map3", - "c", - NULL); - test_complex_map_c_result(status, entry_data, "MMDB_vget_value"); - } - - { - MMDB_entry_data_s entry_data; - const char *lookup_path[] = { - "map1", "map42", "array", "0", "map3", "c", NULL}; - int status = MMDB_aget_value(&result.entry, &entry_data, lookup_path); - test_no_result(status, - entry_data, - "MMDB_aget_value", - "map1{map42}{array}[0]{map3}{c}"); - - status = MMDB_get_value(&result.entry, - &entry_data, - "map1", - "map42", - "array", - "0", - "map3", - "c", - NULL); - test_no_result(status, - entry_data, - "MMDB_get_value", - "map1{map42}{array}[0]{map3}{c}"); - - status = call_vget_value(&result.entry, - &entry_data, - "map1", - "map42", - "array", - "0", - "map3", - "c", - NULL); - test_no_result(status, - entry_data, - "MMDB_vget_value", - "map1{map42}{array}[0]{map3}{c}"); - } - - { - MMDB_entry_data_s entry_data; - const char *lookup_path[] = { - "map1", "map2", "array", "9", "map3", "c", NULL}; - int status = MMDB_aget_value(&result.entry, &entry_data, lookup_path); - test_no_result(status, - entry_data, - "MMDB_aget_value", - "map1{map42}{array}[9]{map3}{c}"); - - status = MMDB_get_value(&result.entry, - &entry_data, - "map1", - "map2", - "array", - "9", - "map3", - "c", - NULL); - test_no_result(status, - entry_data, - "MMDB_get_value", - "map1{map42}{array}[9]{map3}{c}"); - - status = call_vget_value(&result.entry, - &entry_data, - "map1", - "map2", - "array", - "9", - "map3", - "c", - NULL); - test_no_result(status, - entry_data, - "MMDB_vget_value", - "map1{map42}{array}[9]{map3}{c}"); - } - - MMDB_close(mmdb); - free(mmdb); -} - -void run_tests(int mode, const char *mode_desc) { - test_simple_structure(mode, mode_desc); - test_nested_structure(mode, mode_desc); -} - -int main(void) { - plan(NO_PLAN); - for_all_modes(&run_tests); - done_testing(); -} diff --git a/3rd/libmaxminddb/t/ipv4_start_cache_t.c b/3rd/libmaxminddb/t/ipv4_start_cache_t.c deleted file mode 100644 index 3e13abcfa..000000000 --- a/3rd/libmaxminddb/t/ipv4_start_cache_t.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "maxminddb_test_helper.h" - -void test_one_ip(MMDB_s *mmdb, - const char *ip, - const char *filename, - const char *mode_desc) { - MMDB_lookup_result_s result = - lookup_string_ok(mmdb, ip, filename, mode_desc); - - ok(result.found_entry, - "got a result for an IPv4 address included in a larger-than-IPv4 subnet " - "- %s - %s", - ip, - mode_desc); - - data_ok(&result, MMDB_DATA_TYPE_UTF8_STRING, "string value for IP", NULL); -} - -void run_tests(int mode, const char *mode_desc) { - const char *filename = "MaxMind-DB-no-ipv4-search-tree.mmdb"; - const char *path = test_database_path(filename); - MMDB_s *mmdb = open_ok(path, mode, mode_desc); - free((void *)path); - - test_one_ip(mmdb, "1.1.1.1", filename, mode_desc); - test_one_ip(mmdb, "255.255.255.255", filename, mode_desc); - - MMDB_close(mmdb); - free(mmdb); -} - -int main(void) { - plan(NO_PLAN); - for_all_modes(&run_tests); - done_testing(); -} diff --git a/3rd/libmaxminddb/t/ipv6_lookup_in_ipv4_t.c b/3rd/libmaxminddb/t/ipv6_lookup_in_ipv4_t.c deleted file mode 100644 index d42309170..000000000 --- a/3rd/libmaxminddb/t/ipv6_lookup_in_ipv4_t.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "maxminddb_test_helper.h" - -void run_tests(int mode, const char *mode_desc) { - const char *filename = "MaxMind-DB-test-ipv4-28.mmdb"; - const char *path = test_database_path(filename); - MMDB_s *mmdb = open_ok(path, mode, mode_desc); - free((void *)path); - - const char *ip = "::abcd"; - int gai_error, mmdb_error; - MMDB_lookup_result_s UNUSED(result) = - MMDB_lookup_string(mmdb, ip, &gai_error, &mmdb_error); - - cmp_ok(mmdb_error, - "==", - MMDB_IPV6_LOOKUP_IN_IPV4_DATABASE_ERROR, - "MMDB_lookup_string sets mmdb_error to " - "MMDB_IPV6_LOOKUP_IN_IPV4_DATABASE_ERROR when we try to look up an " - "IPv6 address in an IPv4-only database"); - - struct addrinfo hints = {.ai_family = AF_INET6, .ai_flags = AI_NUMERICHOST}; - - struct addrinfo *addresses; - gai_error = getaddrinfo( - "2001:db8:85a3:0:0:8a2e:370:7334", NULL, &hints, &addresses); - if (gai_error) { - BAIL_OUT("getaddrinfo failed: %s", gai_strerror(gai_error)); - } - - mmdb_error = 0; - MMDB_lookup_sockaddr(mmdb, addresses->ai_addr, &mmdb_error); - - cmp_ok(mmdb_error, - "==", - MMDB_IPV6_LOOKUP_IN_IPV4_DATABASE_ERROR, - "MMDB_lookup_sockaddr sets mmdb_error to " - "MMDB_IPV6_LOOKUP_IN_IPV4_DATABASE_ERROR when we try to look up an " - "IPv6 address in an IPv4-only database"); - - freeaddrinfo(addresses); - MMDB_close(mmdb); - free(mmdb); -} - -int main(void) { - plan(NO_PLAN); - for_all_modes(&run_tests); - done_testing(); -} diff --git a/3rd/libmaxminddb/t/libtap/COPYING b/3rd/libmaxminddb/t/libtap/COPYING deleted file mode 100644 index 65c5ca88a..000000000 --- a/3rd/libmaxminddb/t/libtap/COPYING +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/3rd/libmaxminddb/t/libtap/INSTALL b/3rd/libmaxminddb/t/libtap/INSTALL deleted file mode 100644 index 5b2c76df3..000000000 --- a/3rd/libmaxminddb/t/libtap/INSTALL +++ /dev/null @@ -1,41 +0,0 @@ -To install libtap on a Unix-like system: - - $ make - $ make check - $ make install - -To compile with gcc -ansi, run: - - $ ANSI=1 make - -To install to a different directory than /usr/local, supply the -PREFIX variable to make: - - $ PREFIX=/usr make install - -On Windows, the library can be created by first setting up the -correct development environment variables. Usually this is done by -running vcvars32.bat included in the Visual Studio distribution. -You should also install gnu make which can be found at -http://gnuwin32.sourceforge.net/packages/make.htm. Once this is -done, you should be able to run the following: - - > make -f Makefile.win - -If you want to use it directly in another project, you can copy tap.c -and tap.h there and it shouldn't have a problem compiling. - - $ ls - tap.c tap.h test.c - $ cat test.c - #include "tap.h" - int main () { - plan(1); - ok(50 + 5, "foo %s", "bar"); - done_testing(); - } - $ gcc test.c tap.c - $ a.out - 1..1 - ok 1 - foo bar - diff --git a/3rd/libmaxminddb/t/libtap/Makefile b/3rd/libmaxminddb/t/libtap/Makefile deleted file mode 100644 index c00bef1da..000000000 --- a/3rd/libmaxminddb/t/libtap/Makefile +++ /dev/null @@ -1,72 +0,0 @@ -CC ?= gcc -CFLAGS += -Wall -I. -fPIC -PREFIX ?= $(DESTDIR)/usr/local -TESTS = $(patsubst %.c, %, $(wildcard t/*.c)) - -ifdef ANSI - # -D_BSD_SOURCE for MAP_ANONYMOUS - CFLAGS += -ansi -D_BSD_SOURCE - LDLIBS += -lbsd-compat -endif - -%: - $(CC) $(LDFLAGS) $(TARGET_ARCH) $(filter %.o %.a %.so, $^) $(LDLIBS) -o $@ - -%.o: - $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $(filter %.c, $^) $(LDLIBS) -o $@ - -%.a: - $(AR) rcs $@ $(filter %.o, $^) - -%.so: - $(CC) -shared $(LDFLAGS) $(TARGET_ARCH) $(filter %.o, $^) $(LDLIBS) -o $@ - -all: libtap.a libtap.so tap.pc tests - -tap.pc: - @echo generating tap.pc - @echo 'prefix='$(PREFIX) > tap.pc - @echo 'exec_prefix=$${prefix}' >> tap.pc - @echo 'libdir=$${prefix}/lib' >> tap.pc - @echo 'includedir=$${prefix}/include' >> tap.pc - @echo '' >> tap.pc - @echo 'Name: libtap' >> tap.pc - @echo 'Description: Write tests in C' >> tap.pc - @echo 'Version: 0.1.0' >> tap.pc - @echo 'URL: https://github.com/zorgnax/libtap' >> tap.pc - @echo 'Libs: -L$${libdir} -ltap' >> tap.pc - @echo 'Cflags: -I$${includedir}' >> tap.pc - -libtap.a: tap.o - -libtap.so: tap.o - -tap.o: tap.c tap.h - -tests: $(TESTS) - -$(TESTS): %: %.o libtap.a - -$(patsubst %, %.o, $(TESTS)): %.o: %.c tap.h - -clean: - rm -rf *.o t/*.o tap.pc libtap.a libtap.so $(TESTS) - -install: libtap.a tap.h libtap.so tap.pc - mkdir -p $(PREFIX)/lib $(PREFIX)/include $(PREFIX)/lib/pkgconfig - install -c libtap.a $(PREFIX)/lib - install -c libtap.so $(PREFIX)/lib - install -c tap.pc $(PREFIX)/lib/pkgconfig - install -c tap.h $(PREFIX)/include - -uninstall: - rm $(PREFIX)/lib/libtap.a $(PREFIX)/lib/libtap.so $(PREFIX)/include/tap.h - -dist: - rm libtap.zip - zip -r libtap * - -check test: all - ./t/test - -.PHONY: all clean install uninstall dist check test tests diff --git a/3rd/libmaxminddb/t/libtap/README.md b/3rd/libmaxminddb/t/libtap/README.md deleted file mode 100644 index 5332d526c..000000000 --- a/3rd/libmaxminddb/t/libtap/README.md +++ /dev/null @@ -1,268 +0,0 @@ -NAME -==== - -libtap - Write tests in C - -SYNOPSIS -======== - - #include - - int main () { - plan(5); - int bronze = 1, silver = 2, gold = 3; - ok(bronze < silver, "bronze is less than silver"); - ok(bronze > silver, "not quite"); - is("gold", "gold", "gold is gold"); - cmp_ok(silver, "<", gold, "%d <= %d", silver, gold); - like("platinum", ".*inum", "platinum matches .*inum"); - done_testing(); - } - -results in: - - 1..5 - ok 1 - bronze is less than silver - not ok 2 - not quite - # Failed test 'not quite' - # at t/synopsis.c line 7. - ok 3 - gold is gold - ok 4 - 2 <= 3 - ok 5 - platinum matches .*inum - # Looks like you failed 1 test of 5 run. - -DESCRIPTION -=========== - -tap is an easy to read and easy to write way of creating tests for -your software. This library creates functions that can be used to -generate it for your C programs. It is implemented using macros -that include file and line info automatically, and makes it so that -the format message of each test is optional. It is mostly based on -the Test::More Perl module. - -INSTALL -======= - -On **Unix** systems: - - $ make - $ make install - -For more detailed installation instructions (eg, for **Windows**), see `INSTALL`. - -FUNCTIONS -========= - -- plan(tests) -- plan(NO_PLAN) -- plan(SKIP_ALL); -- plan(SKIP_ALL, fmt, ...) - - Use this to start a series of tests. When you know how many tests there - will be, you can put a number as a number of tests you expect to run. If - you do not know how many tests there will be, you can use plan(NO_PLAN) - or not call this function. When you pass it a number of tests to run, a - message similar to the following will appear in the output: - - 1..5 - - If you pass it SKIP_ALL, the whole test will be skipped. - -- ok(test) -- ok(test, fmt, ...) - - Specify a test. the test can be any statement returning a true or false - value. You may optionally pass a format string describing the test. - - ok(r = reader_new("Of Mice and Men"), "create a new reader"); - ok(reader_go_to_page(r, 55), "can turn the page"); - ok(r->page == 55, "page turned to the right one"); - - Should print out: - - ok 1 - create a new reader - ok 2 - can turn the page - ok 3 - page turned to the right one - - On failure, a diagnostic message will be printed out. - - not ok 3 - page turned to the right one - # Failed test 'page turned to the right one' - # at reader.c line 13. - -- is(got, expected) -- is(got, expected, fmt, ...) -- isnt(got, unexpected) -- isnt(got, unexpected, fmt, ...) - - Tests that the string you got is what you expected. with isnt, it is the - reverse. - - is("this", "that", "this is that"); - - prints: - - not ok 1 - this is that - # Failed test 'this is that' - # at is.c line 6. - # got: 'this' - # expected: 'that' - -- cmp_ok(a, op, b) -- cmp_ok(a, op, b, fmt, ...) - - Compares two ints with any binary operator that doesn't require an lvalue. - This is nice to use since it provides a better error message than an - equivalent ok. - - cmp_ok(420, ">", 666); - - prints: - - not ok 1 - # Failed test at cmpok.c line 5. - # 420 - # > - # 666 - -- cmp_mem(got, expected, n) -- cmp_mem(got, expected, n, fmt, ...) - - Tests that the first n bytes of the memory you got is what you expected. - NULL pointers for got and expected are handled (if either is NULL, - the test fails), but you need to ensure n is not too large. - - char *a = "foo"; - char *b = "bar"; - cmp_mem(a, b, 3) - - prints - - not ok 1 - # Failed test at t/cmp_mem.c line 9. - # Difference starts at offset 0 - # got: 0x66 - # expected: 0x62 - -- like(got, expected) -- like(got, expected, fmt, ...) -- unlike(got, unexpected) -- unlike(got, unexpected, fmt, ...) - - Tests that the string you got matches the expected extended POSIX regex. - unlike is the reverse. These macros are the equivalent of a skip on - Windows. - - like("stranger", "^s.(r).*\\1$", "matches the regex"); - - prints: - - ok 1 - matches the regex - -- pass() -- pass(fmt, ...) -- fail() -- fail(fmt, ...) - - Speciy that a test succeeded or failed. Use these when the statement is - longer than you can fit into the argument given to an ok() test. - -- dies_ok(code) -- dies_ok(code, fmt, ...) -- lives_ok(code) -- lives_ok(code, fmt, ...) - - Tests whether the given code causes your program to exit. The code gets - passed to a macro that will test it in a forked process. If the code - succeeds it will be executed in the parent process. You can test things - like passing a function a null pointer and make sure it doesnt - dereference it and crash. - - dies_ok({abort();}, "abort does close your program"); - dies_ok({int x = 0/0;}, "divide by zero crash"); - lives_ok({pow(3.0, 5.0);}, "nothing wrong with taking 3**5"); - - On Windows, these macros are the equivalent of a skip. - -- done_testing() - - Summarizes the tests that occurred and exits the main function. If - there was no plan, it will print out the number of tests as. - - 1..5 - - It will also print a diagnostic message about how many - failures there were. - - # Looks like you failed 2 tests of 3 run. - - If all planned tests were successful, it will return 0. If any - test fails, it will return 1. If they all passed, but there - were missing tests, it will return 2. - -- diag(fmt, ...) - - print out a message to the tap output on stdout. Each line is - preceeded by a "# " so that you know its a diagnostic message. - - diag("This is\na diag\nto describe\nsomething."); - - prints: - - # This is - # a diag - # to describe - # something - - ok() and this function return an int so you can use it like: - - ok(0) || diag("doh!"); - -- skip(test, n) -- skip(test, n, fmt, ...) -- end_skip - - Skip a series of n tests if test is true. You may give a reason why you are - skipping them or not. The (possibly) skipped tests must occur between the - skip and end_skip macros. - - skip(TRUE, 2); - ok(1); - ok(0); - end_skip; - - prints: - - ok 1 # skip - ok 2 # skip - -- todo() -- todo(fmt, ...) -- end_todo - - Specifies a series of tests that you expect to fail because they are not - yet implemented. - - todo() - ok(0); - end_todo; - - prints: - - not ok 1 # TODO - # Failed (TODO) test at todo.c line 7 - -- BAIL_OUT() -- BAIL_OUT(fmt, ...) - - Immediately stops all testing. - - BAIL_OUT("Can't go no further"); - - prints - - Bail out! Can't go no further - - and exits with 255. - diff --git a/3rd/libmaxminddb/t/libtap/tap.c b/3rd/libmaxminddb/t/libtap/tap.c deleted file mode 100644 index 152e39e8e..000000000 --- a/3rd/libmaxminddb/t/libtap/tap.c +++ /dev/null @@ -1,354 +0,0 @@ -/* -libtap - Write tests in C -Copyright 2012 Jake Gelbman -This file is licensed under the LGPL -*/ - -#define _DEFAULT_SOURCE 1 - -#include -#include -#include -#include -#include "tap.h" - -static int expected_tests = NO_PLAN; -static int failed_tests; -static int current_test; -static char *todo_mesg; - -static char * -vstrdupf (const char *fmt, va_list args) { - char *str; - int size; - va_list args2; - va_copy(args2, args); - if (!fmt) - fmt = ""; - size = vsnprintf(NULL, 0, fmt, args2) + 2; - str = malloc(size); - if (!str) { - perror("malloc error"); - exit(1); - } - vsprintf(str, fmt, args); - va_end(args2); - return str; -} - -void -tap_plan (int tests, const char *fmt, ...) { - expected_tests = tests; - if (tests == SKIP_ALL) { - char *why; - va_list args; - va_start(args, fmt); - why = vstrdupf(fmt, args); - va_end(args); - printf("1..0 "); - diag("SKIP %s\n", why); - exit(0); - } - if (tests != NO_PLAN) { - printf("1..%d\n", tests); - } -} - -int -vok_at_loc (const char *file, int line, int test, const char *fmt, - va_list args) -{ - char *name = vstrdupf(fmt, args); - if (!test) { - printf("not "); - } - printf("ok %d", ++current_test); - if (*name) - printf(" - %s", name); - if (todo_mesg) { - printf(" # TODO"); - if (*todo_mesg) - printf(" %s", todo_mesg); - } - printf("\n"); - if (!test) { - printf("# Failed "); - if (todo_mesg) - printf("(TODO) "); - printf("test "); - if (*name) - printf("'%s'\n# ", name); - printf("at %s line %d.\n", file, line); - if (!todo_mesg) - failed_tests++; - } - free(name); - return test; -} - -int -ok_at_loc (const char *file, int line, int test, const char *fmt, ...) { - va_list args; - va_start(args, fmt); - vok_at_loc(file, line, test, fmt, args); - va_end(args); - return test; -} - -static int -mystrcmp (const char *a, const char *b) { - return a == b ? 0 : !a ? -1 : !b ? 1 : strcmp(a, b); -} - -#define eq(a, b) (!mystrcmp(a, b)) -#define ne(a, b) (mystrcmp(a, b)) - -int -is_at_loc (const char *file, int line, const char *got, const char *expected, - const char *fmt, ...) -{ - int test = eq(got, expected); - va_list args; - va_start(args, fmt); - vok_at_loc(file, line, test, fmt, args); - va_end(args); - if (!test) { - diag(" got: '%s'", got); - diag(" expected: '%s'", expected); - } - return test; -} - -int -isnt_at_loc (const char *file, int line, const char *got, const char *expected, - const char *fmt, ...) -{ - int test = ne(got, expected); - va_list args; - va_start(args, fmt); - vok_at_loc(file, line, test, fmt, args); - va_end(args); - if (!test) { - diag(" got: '%s'", got); - diag(" expected: anything else"); - } - return test; -} - -int -cmp_ok_at_loc (const char *file, int line, int a, const char *op, int b, - const char *fmt, ...) -{ - int test = eq(op, "||") ? a || b - : eq(op, "&&") ? a && b - : eq(op, "|") ? a | b - : eq(op, "^") ? a ^ b - : eq(op, "&") ? a & b - : eq(op, "==") ? a == b - : eq(op, "!=") ? a != b - : eq(op, "<") ? a < b - : eq(op, ">") ? a > b - : eq(op, "<=") ? a <= b - : eq(op, ">=") ? a >= b - : eq(op, "<<") ? a << b - : eq(op, ">>") ? a >> b - : eq(op, "+") ? a + b - : eq(op, "-") ? a - b - : eq(op, "*") ? a * b - : eq(op, "/") ? a / b - : eq(op, "%") ? a % b - : diag("unrecognized operator '%s'", op); - va_list args; - va_start(args, fmt); - vok_at_loc(file, line, test, fmt, args); - va_end(args); - if (!test) { - diag(" %d", a); - diag(" %s", op); - diag(" %d", b); - } - return test; -} - -static int -find_mem_diff (const char *a, const char *b, size_t n, size_t *offset) { - size_t i; - if (a == b) - return 0; - if (!a || !b) - return 2; - for (i = 0; i < n; i++) { - if (a[i] != b[i]) { - *offset = i; - return 1; - } - } - return 0; -} - -int -cmp_mem_at_loc (const char *file, int line, const void *got, - const void *expected, size_t n, const char *fmt, ...) -{ - size_t offset; - int diff = find_mem_diff(got, expected, n, &offset); - va_list args; - va_start(args, fmt); - vok_at_loc(file, line, !diff, fmt, args); - va_end(args); - if (diff == 1) { - diag(" Difference starts at offset %d", offset); - diag(" got: 0x%02x", ((unsigned char *)got)[offset]); - diag(" expected: 0x%02x", ((unsigned char *)expected)[offset]); - } - else if (diff == 2) { - diag(" got: %s", got ? "not NULL" : "NULL"); - diag(" expected: %s", expected ? "not NULL" : "NULL"); - } - return !diff; -} - -int -diag (const char *fmt, ...) { - va_list args; - char *mesg, *line; - int i; - va_start(args, fmt); - if (!fmt) - return 0; - mesg = vstrdupf(fmt, args); - line = mesg; - for (i = 0; *line; i++) { - char c = mesg[i]; - if (!c || c == '\n') { - mesg[i] = '\0'; - printf("# %s\n", line); - if (!c) - break; - mesg[i] = c; - line = mesg + i + 1; - } - } - free(mesg); - va_end(args); - return 0; -} - -int -exit_status () { - int retval = 0; - if (expected_tests == NO_PLAN) { - printf("1..%d\n", current_test); - } - else if (current_test != expected_tests) { - diag("Looks like you planned %d test%s but ran %d.", - expected_tests, expected_tests > 1 ? "s" : "", current_test); - retval = 2; - } - if (failed_tests) { - diag("Looks like you failed %d test%s of %d run.", - failed_tests, failed_tests > 1 ? "s" : "", current_test); - retval = 1; - } - return retval; -} - -int -bail_out (int ignore, const char *fmt, ...) { - va_list args; - va_start(args, fmt); - printf("Bail out! "); - vprintf(fmt, args); - printf("\n"); - va_end(args); - exit(255); - return 0; -} - -void -tap_skip (int n, const char *fmt, ...) { - char *why; - va_list args; - va_start(args, fmt); - why = vstrdupf(fmt, args); - va_end(args); - while (n --> 0) { - printf("ok %d ", ++current_test); - diag("skip %s\n", why); - } - free(why); -} - -void -tap_todo (int ignore, const char *fmt, ...) { - va_list args; - va_start(args, fmt); - todo_mesg = vstrdupf(fmt, args); - va_end(args); -} - -void -tap_end_todo () { - free(todo_mesg); - todo_mesg = NULL; -} - -#ifndef _WIN32 -#include -#include -#include - -#if defined __APPLE__ || defined BSD -#define MAP_ANONYMOUS MAP_ANON -#endif - -/* Create a shared memory int to keep track of whether a piece of code executed -dies. to be used in the dies_ok and lives_ok macros. */ -int -tap_test_died (int status) { - static int *test_died = NULL; - int prev; - if (!test_died) { - test_died = mmap(0, sizeof (int), PROT_READ | PROT_WRITE, - MAP_SHARED | MAP_ANONYMOUS, -1, 0); - *test_died = 0; - } - prev = *test_died; - *test_died = status; - return prev; -} - -int -like_at_loc (int for_match, const char *file, int line, const char *got, - const char *expected, const char *fmt, ...) -{ - int test; - regex_t re; - va_list args; - int err = regcomp(&re, expected, REG_EXTENDED); - if (err) { - char errbuf[256]; - regerror(err, &re, errbuf, sizeof errbuf); - fprintf(stderr, "Unable to compile regex '%s': %s at %s line %d\n", - expected, errbuf, file, line); - exit(255); - } - err = regexec(&re, got, 0, NULL, 0); - regfree(&re); - test = for_match ? !err : err; - va_start(args, fmt); - vok_at_loc(file, line, test, fmt, args); - va_end(args); - if (!test) { - if (for_match) { - diag(" '%s'", got); - diag(" doesn't match: '%s'", expected); - } - else { - diag(" '%s'", got); - diag(" matches: '%s'", expected); - } - } - return test; -} -#endif diff --git a/3rd/libmaxminddb/t/libtap/tap.h b/3rd/libmaxminddb/t/libtap/tap.h deleted file mode 100644 index d1f9af35b..000000000 --- a/3rd/libmaxminddb/t/libtap/tap.h +++ /dev/null @@ -1,115 +0,0 @@ -/* -libtap - Write tests in C -Copyright 2012 Jake Gelbman -This file is licensed under the LGPL -*/ - -#ifndef __TAP_H__ -#define __TAP_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef va_copy -#ifdef __va_copy -#define va_copy __va_copy -#else -#define va_copy(d, s) ((d) = (s)) -#endif -#endif - -#include -#include -#include - -int vok_at_loc (const char *file, int line, int test, const char *fmt, - va_list args); -int ok_at_loc (const char *file, int line, int test, const char *fmt, - ...); -int is_at_loc (const char *file, int line, const char *got, - const char *expected, const char *fmt, ...); -int isnt_at_loc (const char *file, int line, const char *got, - const char *expected, const char *fmt, ...); -int cmp_ok_at_loc (const char *file, int line, int a, const char *op, - int b, const char *fmt, ...); -int cmp_mem_at_loc (const char *file, int line, const void *got, - const void *expected, size_t n, const char *fmt, ...); -int bail_out (int ignore, const char *fmt, ...); -void tap_plan (int tests, const char *fmt, ...); -int diag (const char *fmt, ...); -int exit_status (void); -void tap_skip (int n, const char *fmt, ...); -void tap_todo (int ignore, const char *fmt, ...); -void tap_end_todo (void); - -#define NO_PLAN -1 -#define SKIP_ALL -2 -#define ok(...) ok_at_loc(__FILE__, __LINE__, __VA_ARGS__, NULL) -#define is(...) is_at_loc(__FILE__, __LINE__, __VA_ARGS__, NULL) -#define isnt(...) isnt_at_loc(__FILE__, __LINE__, __VA_ARGS__, NULL) -#define cmp_ok(...) cmp_ok_at_loc(__FILE__, __LINE__, __VA_ARGS__, NULL) -#define cmp_mem(...) cmp_mem_at_loc(__FILE__, __LINE__, __VA_ARGS__, NULL) -#define plan(...) tap_plan(__VA_ARGS__, NULL) -#define done_testing() return exit_status() -#define BAIL_OUT(...) bail_out(0, "" __VA_ARGS__, NULL) -#define pass(...) ok(1, "" __VA_ARGS__) -#define fail(...) ok(0, "" __VA_ARGS__) - -#define skip(test, ...) do {if (test) {tap_skip(__VA_ARGS__, NULL); break;} -#define end_skip } while (0) - -#define todo(...) tap_todo(0, "" __VA_ARGS__, NULL) -#define end_todo tap_end_todo() - -#define dies_ok(...) dies_ok_common(1, __VA_ARGS__) -#define lives_ok(...) dies_ok_common(0, __VA_ARGS__) - -#ifdef _WIN32 -#define like(...) tap_skip(1, "like is not implemented on Windows") -#define unlike tap_skip(1, "unlike is not implemented on Windows") -#define dies_ok_common(...) \ - tap_skip(1, "Death detection is not supported on Windows") -#else -#define like(...) like_at_loc(1, __FILE__, __LINE__, __VA_ARGS__, NULL) -#define unlike(...) like_at_loc(0, __FILE__, __LINE__, __VA_ARGS__, NULL) -int like_at_loc (int for_match, const char *file, int line, - const char *got, const char *expected, - const char *fmt, ...); -#include -#include -#include -int tap_test_died (int status); -#define dies_ok_common(for_death, code, ...) \ - do { \ - int cpid; \ - int it_died; \ - tap_test_died(1); \ - cpid = fork(); \ - switch (cpid) { \ - case -1: \ - perror("fork error"); \ - exit(1); \ - case 0: \ - close(1); \ - close(2); \ - code \ - tap_test_died(0); \ - exit(0); \ - } \ - if (waitpid(cpid, NULL, 0) < 0) { \ - perror("waitpid error"); \ - exit(1); \ - } \ - it_died = tap_test_died(0); \ - if (!it_died) \ - {code} \ - ok(for_death ? it_died : !it_died, "" __VA_ARGS__); \ - } while (0) -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rd/libmaxminddb/t/maxmind-db/.perltidyallrc b/3rd/libmaxminddb/t/maxmind-db/.perltidyallrc deleted file mode 100644 index 3779688b3..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/.perltidyallrc +++ /dev/null @@ -1,11 +0,0 @@ ---blank-lines-before-packages=0 ---iterations=2 ---no-outdent-long-comments --bar --boc --ci=4 --i=4 --l=78 --nolq --se --wbb="% + - * / x != == >= <= =~ !~ < > | & >= < = **= += *= &= <<= &&= -= /= |= >>= ||= .= %= ^= x=" diff --git a/3rd/libmaxminddb/t/maxmind-db/.tidyallrc b/3rd/libmaxminddb/t/maxmind-db/.tidyallrc deleted file mode 100644 index 9a73ac9ff..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/.tidyallrc +++ /dev/null @@ -1,7 +0,0 @@ -[PerlTidy] -select = **/*.{pl,pm,t,psgi} -ignore = blib/**/* -argv = --profile=$ROOT/.perltidyallrc - -[JSON] -select = **/*.json diff --git a/3rd/libmaxminddb/t/maxmind-db/LICENSE b/3rd/libmaxminddb/t/maxmind-db/LICENSE deleted file mode 100644 index f86abbd73..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/LICENSE +++ /dev/null @@ -1,4 +0,0 @@ -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/3rd/libmaxminddb/t/maxmind-db/MaxMind-DB-spec.md b/3rd/libmaxminddb/t/maxmind-db/MaxMind-DB-spec.md deleted file mode 100644 index 7b7fd2541..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/MaxMind-DB-spec.md +++ /dev/null @@ -1,558 +0,0 @@ ---- -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 128kb. - -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 -consistute 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, dependending 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 < 1,000, this is a *node -number*, and we look up that node. If a record contains a value >= 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 the 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 - 010XXXXX 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 subdiving 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/3rd/libmaxminddb/t/maxmind-db/README.md b/3rd/libmaxminddb/t/maxmind-db/README.md deleted file mode 100644 index 71d2795c3..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/README.md +++ /dev/null @@ -1,4 +0,0 @@ -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/3rd/libmaxminddb/t/maxmind-db/bad-data/README.md b/3rd/libmaxminddb/t/maxmind-db/bad-data/README.md deleted file mode 100644 index fe886fde4..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/bad-data/README.md +++ /dev/null @@ -1,7 +0,0 @@ -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/3rd/libmaxminddb/t/maxmind-db/bad-data/libmaxminddb/libmaxminddb-offset-integer-overflow.mmdb b/3rd/libmaxminddb/t/maxmind-db/bad-data/libmaxminddb/libmaxminddb-offset-integer-overflow.mmdb deleted file mode 100644 index b76f3546c..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/bad-data/libmaxminddb/libmaxminddb-offset-integer-overflow.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/cyclic-data-structure.mmdb b/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/cyclic-data-structure.mmdb deleted file mode 100644 index 1015cbe9b..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/cyclic-data-structure.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/invalid-bytes-length.mmdb b/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/invalid-bytes-length.mmdb deleted file mode 100644 index 8c13018fd..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/invalid-bytes-length.mmdb +++ /dev/null @@ -1 +0,0 @@ -MaxMind.comKdescriptionBen \ No newline at end of file diff --git a/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/invalid-data-record-offset.mmdb b/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/invalid-data-record-offset.mmdb deleted file mode 100644 index 228294e5c..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/invalid-data-record-offset.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/invalid-map-key-length.mmdb b/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/invalid-map-key-length.mmdb deleted file mode 100644 index 23e590604..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/invalid-map-key-length.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/invalid-string-length.mmdb b/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/invalid-string-length.mmdb deleted file mode 100644 index c073c7755..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/invalid-string-length.mmdb +++ /dev/null @@ -1 +0,0 @@ -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/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/metadata-is-an-uint128.mmdb b/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/metadata-is-an-uint128.mmdb deleted file mode 100644 index 4000d97e8..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/metadata-is-an-uint128.mmdb +++ /dev/null @@ -1 +0,0 @@ -MaxMind.com \ No newline at end of file diff --git a/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/unexpected-bytes.mmdb b/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/unexpected-bytes.mmdb deleted file mode 100644 index 29b3bc39d..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/unexpected-bytes.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/perltidyrc b/3rd/libmaxminddb/t/maxmind-db/perltidyrc deleted file mode 100644 index b7ed62478..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/perltidyrc +++ /dev/null @@ -1,12 +0,0 @@ ---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/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Anonymous-IP-Test.json b/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Anonymous-IP-Test.json deleted file mode 100644 index 426eed496..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Anonymous-IP-Test.json +++ /dev/null @@ -1,32 +0,0 @@ -[ - { - "::1.2.0.0/112" : { - "is_anonymous" : true, - "is_anonymous_vpn" : 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/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-City-Test.json b/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-City-Test.json deleted file mode 100644 index ec349c838..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-City-Test.json +++ /dev/null @@ -1,12616 +0,0 @@ -[ - { - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "FR", - "names" : { - "de" : "Frankreich", - "en" : "France", - "es" : "Francia", - "fr" : "France", - "ja" : "フランス共和国", - "pt-BR" : "França", - "ru" : "Франция", - "zh-CN" : "法国" - } - } - } - }, - { - "2a02:d380::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 130758, - "iso_code" : "IR", - "names" : { - "de" : "Iran (Islamische Republik)", - "en" : "Iran", - "es" : "Irán (República Islámica)", - "fr" : "Iran (République islamique de)", - "ja" : "イラン・イスラム共和国", - "pt-BR" : "República Islâmica do Irã", - "ru" : "Иран", - "zh-CN" : "伊朗伊斯兰共和国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "32", - "longitude" : "53", - "time_zone" : "Asia/Tehran" - }, - "registered_country" : { - "geoname_id" : 130758, - "iso_code" : "IR", - "names" : { - "de" : "Iran (Islamische Republik)", - "en" : "Iran", - "es" : "Irán (República Islámica)", - "fr" : "Iran (République islamique de)", - "ja" : "イラン・イスラム共和国", - "pt-BR" : "República Islâmica do Irã", - "ru" : "Иран", - "zh-CN" : "伊朗伊斯兰共和国" - } - } - } - }, - { - "2a02:d3c0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:d400::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 719819, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - } - } - }, - { - "2a02:d500::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "48.69096", - "longitude" : "9.14062", - "time_zone" : "Europe/Vaduz" - } - } - }, - { - "2a02:d540::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:d580::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 3017382, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "FR", - "names" : { - "de" : "Frankreich", - "en" : "France", - "es" : "Francia", - "fr" : "France", - "ja" : "フランス共和国", - "pt-BR" : "França", - "ru" : "Франция", - "zh-CN" : "法国" - } - } - } - }, - { - "2a02:d680::/30" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:d6a0::/30" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - } - } - }, - { - "2a02:da40::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:da80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2782113, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "RO", - "names" : { - "de" : "Rumänien", - "en" : "Romania", - "es" : "Rumanía", - "fr" : "Roumanie", - "ja" : "ルーマニア", - "pt-BR" : "Romênia", - "ru" : "Румыния", - "zh-CN" : "罗马尼亚" - } - } - } - }, - { - "2a02:db80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "60", - "longitude" : "100" - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:dbc0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "60", - "longitude" : "100" - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:dc00::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "60", - "longitude" : "100" - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:dc40::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 298795, - "iso_code" : "TR", - "names" : { - "de" : "Türkei", - "en" : "Turkey", - "es" : "Turquía", - "fr" : "Turquie", - "ja" : "トルコ共和国", - "pt-BR" : "Turquia", - "ru" : "Турция", - "zh-CN" : "土耳其" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "39.05901", - "longitude" : "34.91155", - "time_zone" : "Europe/Istanbul" - }, - "registered_country" : { - "geoname_id" : 298795, - "iso_code" : "TR", - "names" : { - "de" : "Türkei", - "en" : "Turkey", - "es" : "Turquía", - "fr" : "Turquie", - "ja" : "トルコ共和国", - "pt-BR" : "Turquia", - "ru" : "Турция", - "zh-CN" : "土耳其" - } - } - } - }, - { - "2a02:dc80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "60", - "longitude" : "100" - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:dcc0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 690791, - "iso_code" : "UA", - "names" : { - "de" : "Ukraine", - "en" : "Ukraine", - "es" : "Ucrania", - "fr" : "Ukraine", - "ja" : "ウクライナ共和国", - "pt-BR" : "Ucrânia", - "ru" : "Украина", - "zh-CN" : "乌克兰" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "49", - "longitude" : "32" - }, - "registered_country" : { - "geoname_id" : 690791, - "iso_code" : "UA", - "names" : { - "de" : "Ukraine", - "en" : "Ukraine", - "es" : "Ucrania", - "fr" : "Ukraine", - "ja" : "ウクライナ共和国", - "pt-BR" : "Ucrânia", - "ru" : "Украина", - "zh-CN" : "乌克兰" - } - } - } - }, - { - "2a02:dd00::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 783754, - "iso_code" : "AL", - "names" : { - "de" : "Albanien", - "en" : "Albania", - "es" : "Albania", - "fr" : "Albanie", - "ja" : "アルバニア共和国", - "pt-BR" : "Albânia", - "ru" : "Албания", - "zh-CN" : "阿尔巴尼亚" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "41", - "longitude" : "20", - "time_zone" : "Europe/Tirane" - }, - "registered_country" : { - "geoname_id" : 783754, - "iso_code" : "AL", - "names" : { - "de" : "Albanien", - "en" : "Albania", - "es" : "Albania", - "fr" : "Albanie", - "ja" : "アルバニア共和国", - "pt-BR" : "Albânia", - "ru" : "Албания", - "zh-CN" : "阿尔巴尼亚" - } - } - } - }, - { - "2a02:dd40::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:dd80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2661886, - "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, - "iso_code" : "SE", - "names" : { - "de" : "Schweden", - "en" : "Sweden", - "es" : "Suecia", - "fr" : "Suède", - "ja" : "スウェーデン王国", - "pt-BR" : "Suécia", - "ru" : "Швеция", - "zh-CN" : "瑞典" - } - } - } - }, - { - "2a02:ddc0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "60", - "longitude" : "100" - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:de00::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "60", - "longitude" : "100" - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:de40::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 294640, - "iso_code" : "IL", - "names" : { - "de" : "Israel", - "en" : "Israel", - "es" : "Israel", - "fr" : "Israël", - "ja" : "イスラエル国", - "pt-BR" : "Israel", - "ru" : "Израиль", - "zh-CN" : "以色列" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "31.5", - "longitude" : "34.75", - "time_zone" : "Asia/Jerusalem" - }, - "registered_country" : { - "geoname_id" : 294640, - "iso_code" : "IL", - "names" : { - "de" : "Israel", - "en" : "Israel", - "es" : "Israel", - "fr" : "Israël", - "ja" : "イスラエル国", - "pt-BR" : "Israel", - "ru" : "Израиль", - "zh-CN" : "以色列" - } - } - } - }, - { - "2a02:de80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "60", - "longitude" : "100" - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:dec0::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 272103, - "iso_code" : "LB", - "names" : { - "de" : "Libanon", - "en" : "Lebanon", - "es" : "Líbano", - "fr" : "Liban", - "ja" : "レバノン共和国", - "pt-BR" : "Líbano", - "ru" : "Ливан", - "zh-CN" : "黎巴嫩" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "33.83333", - "longitude" : "35.83333", - "time_zone" : "Asia/Beirut" - }, - "registered_country" : { - "geoname_id" : 272103, - "iso_code" : "LB", - "names" : { - "de" : "Libanon", - "en" : "Lebanon", - "es" : "Líbano", - "fr" : "Liban", - "ja" : "レバノン共和国", - "pt-BR" : "Líbano", - "ru" : "Ливан", - "zh-CN" : "黎巴嫩" - } - } - } - }, - { - "2a02:df00::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 130758, - "iso_code" : "IR", - "names" : { - "de" : "Iran (Islamische Republik)", - "en" : "Iran", - "es" : "Irán (República Islámica)", - "fr" : "Iran (République islamique de)", - "ja" : "イラン・イスラム共和国", - "pt-BR" : "República Islâmica do Irã", - "ru" : "Иран", - "zh-CN" : "伊朗伊斯兰共和国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "32", - "longitude" : "53", - "time_zone" : "Asia/Tehran" - }, - "registered_country" : { - "geoname_id" : 130758, - "iso_code" : "IR", - "names" : { - "de" : "Iran (Islamische Republik)", - "en" : "Iran", - "es" : "Irán (República Islámica)", - "fr" : "Iran (République islamique de)", - "ja" : "イラン・イスラム共和国", - "pt-BR" : "República Islâmica do Irã", - "ru" : "Иран", - "zh-CN" : "伊朗伊斯兰共和国" - } - } - } - }, - { - "2a02:df40::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 298795, - "iso_code" : "TR", - "names" : { - "de" : "Türkei", - "en" : "Turkey", - "es" : "Turquía", - "fr" : "Turquie", - "ja" : "トルコ共和国", - "pt-BR" : "Turquia", - "ru" : "Турция", - "zh-CN" : "土耳其" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "39.05901", - "longitude" : "34.91155", - "time_zone" : "Europe/Istanbul" - }, - "registered_country" : { - "geoname_id" : 298795, - "iso_code" : "TR", - "names" : { - "de" : "Türkei", - "en" : "Turkey", - "es" : "Turquía", - "fr" : "Turquie", - "ja" : "トルコ共和国", - "pt-BR" : "Turquia", - "ru" : "Турция", - "zh-CN" : "土耳其" - } - } - } - }, - { - "2a02:df80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:dfc0::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 130758, - "iso_code" : "IR", - "names" : { - "de" : "Iran (Islamische Republik)", - "en" : "Iran", - "es" : "Irán (República Islámica)", - "fr" : "Iran (République islamique de)", - "ja" : "イラン・イスラム共和国", - "pt-BR" : "República Islâmica do Irã", - "ru" : "Иран", - "zh-CN" : "伊朗伊斯兰共和国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "32", - "longitude" : "53", - "time_zone" : "Asia/Tehran" - }, - "registered_country" : { - "geoname_id" : 130758, - "iso_code" : "IR", - "names" : { - "de" : "Iran (Islamische Republik)", - "en" : "Iran", - "es" : "Irán (República Islámica)", - "fr" : "Iran (République islamique de)", - "ja" : "イラン・イスラム共和国", - "pt-BR" : "República Islâmica do Irã", - "ru" : "Иран", - "zh-CN" : "伊朗伊斯兰共和国" - } - } - } - }, - { - "2a02:e000::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 3017382, - "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, - "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, - "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, - "iso_code" : "NL", - "names" : { - "de" : "Niederlande", - "en" : "Netherlands", - "es" : "Holanda", - "fr" : "Pays-Bas", - "ja" : "オランダ王国", - "pt-BR" : "Países Baixos", - "ru" : "Нидерланды", - "zh-CN" : "荷兰" - } - } - } - }, - { - "2a02:e080::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 285570, - "iso_code" : "KW", - "names" : { - "de" : "Kuwait", - "en" : "Kuwait", - "es" : "Kuwait", - "fr" : "Koweït", - "ja" : "クウェート", - "pt-BR" : "Kuwait", - "ru" : "Кувейт", - "zh-CN" : "科威特" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "29.5", - "longitude" : "47.75", - "time_zone" : "Asia/Kuwait" - }, - "registered_country" : { - "geoname_id" : 285570, - "iso_code" : "KW", - "names" : { - "de" : "Kuwait", - "en" : "Kuwait", - "es" : "Kuwait", - "fr" : "Koweït", - "ja" : "クウェート", - "pt-BR" : "Kuwait", - "ru" : "Кувейт", - "zh-CN" : "科威特" - } - } - } - }, - { - "2a02:e0c0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2658434, - "iso_code" : "CH", - "names" : { - "de" : "Schweiz", - "en" : "Switzerland", - "es" : "Suiza", - "fr" : "Suisse", - "ja" : "スイス連邦", - "pt-BR" : "Suíça", - "ru" : "Швейцария", - "zh-CN" : "瑞士" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "47.00016", - "longitude" : "8.01427", - "time_zone" : "Europe/Zurich" - }, - "registered_country" : { - "geoname_id" : 2658434, - "iso_code" : "CH", - "names" : { - "de" : "Schweiz", - "en" : "Switzerland", - "es" : "Suiza", - "fr" : "Suisse", - "ja" : "スイス連邦", - "pt-BR" : "Suíça", - "ru" : "Швейцария", - "zh-CN" : "瑞士" - } - } - } - }, - { - "2a02:e100::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:e140::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 798544, - "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, - "iso_code" : "PL", - "names" : { - "de" : "Polen", - "en" : "Poland", - "es" : "Polonia", - "fr" : "Pologne", - "ja" : "ポーランド共和国", - "pt-BR" : "Polônia", - "ru" : "Польша", - "zh-CN" : "波兰" - } - } - } - }, - { - "2a02:e180::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:e1c0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2750405, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "SE", - "names" : { - "de" : "Schweden", - "en" : "Sweden", - "es" : "Suecia", - "fr" : "Suède", - "ja" : "スウェーデン王国", - "pt-BR" : "Suécia", - "ru" : "Швеция", - "zh-CN" : "瑞典" - } - } - } - }, - { - "2a02:ea00::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2658434, - "iso_code" : "CH", - "names" : { - "de" : "Schweiz", - "en" : "Switzerland", - "es" : "Suiza", - "fr" : "Suisse", - "ja" : "スイス連邦", - "pt-BR" : "Suíça", - "ru" : "Швейцария", - "zh-CN" : "瑞士" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "47.00016", - "longitude" : "8.01427", - "time_zone" : "Europe/Zurich" - }, - "registered_country" : { - "geoname_id" : 2658434, - "iso_code" : "CH", - "names" : { - "de" : "Schweiz", - "en" : "Switzerland", - "es" : "Suiza", - "fr" : "Suisse", - "ja" : "スイス連邦", - "pt-BR" : "Suíça", - "ru" : "Швейцария", - "zh-CN" : "瑞士" - } - } - } - }, - { - "2a02:ea40::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:ea80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 798544, - "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, - "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, - "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, - "iso_code" : "PL", - "names" : { - "de" : "Polen", - "en" : "Poland", - "es" : "Polonia", - "fr" : "Pologne", - "ja" : "ポーランド共和国", - "pt-BR" : "Polônia", - "ru" : "Польша", - "zh-CN" : "波兰" - } - } - } - }, - { - "2a02:eb00::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "60", - "longitude" : "100" - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:eb40::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:eb80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "60", - "longitude" : "100" - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:ebc0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 3017382, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "CZ", - "names" : { - "de" : "Tschechische Republik", - "en" : "Czech Republic", - "es" : "República Checa", - "fr" : "Tchéquie", - "ja" : "チェコ共和国", - "pt-BR" : "República Checa", - "ru" : "Чешская Республика", - "zh-CN" : "捷克共和国" - } - } - } - }, - { - "2a02:f040::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 290291, - "iso_code" : "BH", - "names" : { - "de" : "Bahrain", - "en" : "Bahrain", - "es" : "Bahréin", - "fr" : "Bahreïn", - "ja" : "バーレーン", - "pt-BR" : "Bahrain", - "ru" : "Бахрейн", - "zh-CN" : "巴林" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "26", - "longitude" : "50.5", - "time_zone" : "Asia/Bahrain" - }, - "registered_country" : { - "geoname_id" : 290291, - "iso_code" : "BH", - "names" : { - "de" : "Bahrain", - "en" : "Bahrain", - "es" : "Bahréin", - "fr" : "Bahreïn", - "ja" : "バーレーン", - "pt-BR" : "Bahrain", - "ru" : "Бахрейн", - "zh-CN" : "巴林" - } - } - } - }, - { - "2a02:f080::/30" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 690791, - "iso_code" : "UA", - "names" : { - "de" : "Ukraine", - "en" : "Ukraine", - "es" : "Ucrania", - "fr" : "Ukraine", - "ja" : "ウクライナ共和国", - "pt-BR" : "Ucrânia", - "ru" : "Украина", - "zh-CN" : "乌克兰" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "49", - "longitude" : "32" - }, - "registered_country" : { - "geoname_id" : 690791, - "iso_code" : "UA", - "names" : { - "de" : "Ukraine", - "en" : "Ukraine", - "es" : "Ucrania", - "fr" : "Ukraine", - "ja" : "ウクライナ共和国", - "pt-BR" : "Ucrânia", - "ru" : "Украина", - "zh-CN" : "乌克兰" - } - } - } - }, - { - "2a02:f0a0::/30" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:f0c0::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 248816, - "iso_code" : "JO", - "names" : { - "de" : "Jordanien", - "en" : "Hashemite Kingdom of Jordan", - "es" : "Jordania", - "fr" : "Jordanie", - "ja" : "ヨルダン・ハシミテ王国", - "pt-BR" : "Jordânia", - "ru" : "Иордания", - "zh-CN" : "约旦" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "31", - "longitude" : "36", - "time_zone" : "Asia/Amman" - }, - "registered_country" : { - "geoname_id" : 248816, - "iso_code" : "JO", - "names" : { - "de" : "Jordanien", - "en" : "Hashemite Kingdom of Jordan", - "es" : "Jordania", - "fr" : "Jordanie", - "ja" : "ヨルダン・ハシミテ王国", - "pt-BR" : "Jordânia", - "ru" : "Иордания", - "zh-CN" : "约旦" - } - } - } - }, - { - "2a02:f100::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:f140::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - } - } - }, - { - "2a02:f380::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:f3c0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 798544, - "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, - "iso_code" : "PL", - "names" : { - "de" : "Polen", - "en" : "Poland", - "es" : "Polonia", - "fr" : "Pologne", - "ja" : "ポーランド共和国", - "pt-BR" : "Polônia", - "ru" : "Польша", - "zh-CN" : "波兰" - } - } - } - }, - { - "2a02:f400::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 290557, - "iso_code" : "AE", - "names" : { - "de" : "Vereinigte Arabische Emirate", - "en" : "United Arab Emirates", - "es" : "Emiratos Árabes Unidos", - "fr" : "Émirats Arabes Unis", - "ja" : "アラブ首長国連邦", - "pt-BR" : "Emirados Árabes Unidos", - "ru" : "Объединенные Арабские Эмираты", - "zh-CN" : "阿拉伯联合酋长国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "24", - "longitude" : "54", - "time_zone" : "Asia/Dubai" - }, - "registered_country" : { - "geoname_id" : 290557, - "iso_code" : "AE", - "names" : { - "de" : "Vereinigte Arabische Emirate", - "en" : "United Arab Emirates", - "es" : "Emiratos Árabes Unidos", - "fr" : "Émirats Arabes Unis", - "ja" : "アラブ首長国連邦", - "pt-BR" : "Emirados Árabes Unidos", - "ru" : "Объединенные Арабские Эмираты", - "zh-CN" : "阿拉伯联合酋长国" - } - } - } - }, - { - "2a02:f440::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:f480::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 3144096, - "iso_code" : "NO", - "names" : { - "de" : "Norwegen", - "en" : "Norway", - "es" : "Noruega", - "fr" : "Norvège", - "ja" : "ノルウェー王国", - "pt-BR" : "Noruega", - "ru" : "Норвегия", - "zh-CN" : "挪威" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "62", - "longitude" : "10", - "time_zone" : "Europe/Oslo" - }, - "registered_country" : { - "geoname_id" : 3144096, - "iso_code" : "NO", - "names" : { - "de" : "Norwegen", - "en" : "Norway", - "es" : "Noruega", - "fr" : "Norvège", - "ja" : "ノルウェー王国", - "pt-BR" : "Noruega", - "ru" : "Норвегия", - "zh-CN" : "挪威" - } - } - } - }, - { - "2a02:f4c0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2510769, - "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, - "iso_code" : "ES", - "names" : { - "de" : "Spanien", - "en" : "Spain", - "es" : "España", - "fr" : "Espagne", - "ja" : "スペイン", - "pt-BR" : "Espanha", - "ru" : "Испания", - "zh-CN" : "西班牙" - } - } - } - }, - { - "2a02:f500::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "60", - "longitude" : "100" - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:f540::/30" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:f560::/30" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "60", - "longitude" : "100" - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:f580::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 174982, - "iso_code" : "AM", - "names" : { - "de" : "Armenien", - "en" : "Armenia", - "es" : "Armenia", - "fr" : "Arménie", - "ja" : "アルメニア共和国", - "pt-BR" : "Armênia", - "ru" : "Армения", - "zh-CN" : "亚美尼亚" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "40", - "longitude" : "45", - "time_zone" : "Asia/Yerevan" - }, - "registered_country" : { - "geoname_id" : 174982, - "iso_code" : "AM", - "names" : { - "de" : "Armenien", - "en" : "Armenia", - "es" : "Armenia", - "fr" : "Arménie", - "ja" : "アルメニア共和国", - "pt-BR" : "Armênia", - "ru" : "Армения", - "zh-CN" : "亚美尼亚" - } - } - } - }, - { - "2a02:f5c0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2750405, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "HU", - "names" : { - "de" : "Ungarn", - "en" : "Hungary", - "es" : "Hungría", - "fr" : "Hongrie", - "ja" : "ハンガリー共和国", - "pt-BR" : "Hungria", - "ru" : "Венгрия", - "zh-CN" : "匈牙利" - } - } - } - }, - { - "2a02:f980::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:f9c0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:fa00::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 102358, - "iso_code" : "SA", - "names" : { - "de" : "Saudi-Arabien", - "en" : "Saudi Arabia", - "es" : "Arabia Saudita", - "fr" : "Arabie saoudite", - "ja" : "サウジアラビア王国", - "pt-BR" : "Arábia Saudita", - "ru" : "Саудовская Аравия", - "zh-CN" : "沙特阿拉伯" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "25", - "longitude" : "45", - "time_zone" : "Asia/Riyadh" - }, - "registered_country" : { - "geoname_id" : 102358, - "iso_code" : "SA", - "names" : { - "de" : "Saudi-Arabien", - "en" : "Saudi Arabia", - "es" : "Arabia Saudita", - "fr" : "Arabie saoudite", - "ja" : "サウジアラビア王国", - "pt-BR" : "Arábia Saudita", - "ru" : "Саудовская Аравия", - "zh-CN" : "沙特阿拉伯" - } - } - } - }, - { - "2a02:fa40::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 298795, - "iso_code" : "TR", - "names" : { - "de" : "Türkei", - "en" : "Turkey", - "es" : "Turquía", - "fr" : "Turquie", - "ja" : "トルコ共和国", - "pt-BR" : "Turquia", - "ru" : "Турция", - "zh-CN" : "土耳其" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "39.05901", - "longitude" : "34.91155", - "time_zone" : "Europe/Istanbul" - }, - "registered_country" : { - "geoname_id" : 298795, - "iso_code" : "TR", - "names" : { - "de" : "Türkei", - "en" : "Turkey", - "es" : "Turquía", - "fr" : "Turquie", - "ja" : "トルコ共和国", - "pt-BR" : "Turquia", - "ru" : "Турция", - "zh-CN" : "土耳其" - } - } - } - }, - { - "2a02:fa80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - } - } - }, - { - "2a02:fb40::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:fb80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 3175395, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "DK", - "names" : { - "de" : "Dänemark", - "en" : "Denmark", - "es" : "Dinamarca", - "fr" : "Danemark", - "ja" : "デンマーク王国", - "pt-BR" : "Dinamarca", - "ru" : "Дания", - "zh-CN" : "丹麦" - } - } - } - }, - { - "2a02:fc80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 3144096, - "iso_code" : "NO", - "names" : { - "de" : "Norwegen", - "en" : "Norway", - "es" : "Noruega", - "fr" : "Norvège", - "ja" : "ノルウェー王国", - "pt-BR" : "Noruega", - "ru" : "Норвегия", - "zh-CN" : "挪威" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "62", - "longitude" : "10", - "time_zone" : "Europe/Oslo" - }, - "registered_country" : { - "geoname_id" : 3144096, - "iso_code" : "NO", - "names" : { - "de" : "Norwegen", - "en" : "Norway", - "es" : "Noruega", - "fr" : "Norvège", - "ja" : "ノルウェー王国", - "pt-BR" : "Noruega", - "ru" : "Норвегия", - "zh-CN" : "挪威" - } - } - } - }, - { - "2a02:fcc0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:fd00::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "NL", - "names" : { - "de" : "Niederlande", - "en" : "Netherlands", - "es" : "Holanda", - "fr" : "Pays-Bas", - "ja" : "オランダ王国", - "pt-BR" : "Países Baixos", - "ru" : "Нидерланды", - "zh-CN" : "荷兰" - } - } - } - }, - { - "2a02:fe40::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:fe80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 3175395, - "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, - "iso_code" : "IT", - "names" : { - "de" : "Italien", - "en" : "Italy", - "es" : "Italia", - "fr" : "Italie", - "ja" : "イタリア共和国", - "pt-BR" : "Itália", - "ru" : "Италия", - "zh-CN" : "意大利" - } - } - } - }, - { - "2a02:fec0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "54.75844", - "longitude" : "-2.69531", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:ff00::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 3175395, - "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, - "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, - "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, - "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, - "iso_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, - "iso_code" : "FR", - "names" : { - "de" : "Frankreich", - "en" : "France", - "es" : "Francia", - "fr" : "France", - "ja" : "フランス共和国", - "pt-BR" : "França", - "ru" : "Франция", - "zh-CN" : "法国" - } - }, - "subdivisions" : [ - { - "geoname_id" : 6269131, - "iso_code" : "ENG", - "names" : { - "en" : "England", - "es" : "Inglaterra", - "fr" : "Angleterre", - "pt-BR" : "Inglaterra" - } - }, - { - "geoname_id" : 3333217, - "iso_code" : "WBK", - "names" : { - "en" : "West Berkshire", - "ru" : "Западный Беркшир", - "zh-CN" : "西伯克郡" - } - } - ] - } - }, - { - "::81.2.69.142/127" : { - "city" : { - "geoname_id" : "2643743", - "names" : { - "de" : "London", - "en" : "London", - "es" : "Londres", - "fr" : "Londres", - "ja" : "ロンドン", - "pt-BR" : "Londres", - "ru" : "Лондон" - } - }, - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 10, - "latitude" : "51.5142", - "longitude" : "-0.0931", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 6252001, - "iso_code" : "US", - "names" : { - "de" : "USA", - "en" : "United States", - "es" : "Estados Unidos", - "fr" : "États-Unis", - "ja" : "アメリカ合衆国", - "pt-BR" : "Estados Unidos", - "ru" : "США", - "zh-CN" : "美国" - } - }, - "subdivisions" : [ - { - "geoname_id" : 6269131, - "iso_code" : "ENG", - "names" : { - "en" : "England", - "es" : "Inglaterra", - "fr" : "Angleterre", - "pt-BR" : "Inglaterra" - } - } - ] - } - }, - { - "::81.2.69.144/124" : { - "city" : { - "geoname_id" : "2643743", - "names" : { - "de" : "London", - "en" : "London", - "es" : "Londres", - "fr" : "Londres", - "ja" : "ロンドン", - "pt-BR" : "Londres", - "ru" : "Лондон" - } - }, - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 3, - "latitude" : "51.5142", - "longitude" : "-0.0931", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 6252001, - "iso_code" : "US", - "names" : { - "de" : "USA", - "en" : "United States", - "es" : "Estados Unidos", - "fr" : "États-Unis", - "ja" : "アメリカ合衆国", - "pt-BR" : "Estados Unidos", - "ru" : "США", - "zh-CN" : "美国" - } - }, - "subdivisions" : [ - { - "geoname_id" : 6269131, - "iso_code" : "ENG", - "names" : { - "en" : "England", - "es" : "Inglaterra", - "fr" : "Angleterre", - "pt-BR" : "Inglaterra" - } - } - ] - } - }, - { - "::81.2.69.160/123" : { - "city" : { - "geoname_id" : "2643743", - "names" : { - "de" : "London", - "en" : "London", - "es" : "Londres", - "fr" : "Londres", - "ja" : "ロンドン", - "pt-BR" : "Londres", - "ru" : "Лондон" - } - }, - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "51.5142", - "longitude" : "-0.0931", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 6252001, - "iso_code" : "US", - "names" : { - "de" : "USA", - "en" : "United States", - "es" : "Estados Unidos", - "fr" : "États-Unis", - "ja" : "アメリカ合衆国", - "pt-BR" : "Estados Unidos", - "ru" : "США", - "zh-CN" : "美国" - } - }, - "subdivisions" : [ - { - "geoname_id" : 6269131, - "iso_code" : "ENG", - "names" : { - "en" : "England", - "es" : "Inglaterra", - "fr" : "Angleterre", - "pt-BR" : "Inglaterra" - } - } - ] - } - }, - { - "::81.2.69.192/124" : { - "city" : { - "geoname_id" : "2643743", - "names" : { - "de" : "London", - "en" : "London", - "es" : "Londres", - "fr" : "Londres", - "ja" : "ロンドン", - "pt-BR" : "Londres", - "ru" : "Лондон" - } - }, - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "51.5142", - "longitude" : "-0.0931", - "time_zone" : "Europe/London" - }, - "registered_country" : { - "geoname_id" : 6252001, - "iso_code" : "US", - "names" : { - "de" : "USA", - "en" : "United States", - "es" : "Estados Unidos", - "fr" : "États-Unis", - "ja" : "アメリカ合衆国", - "pt-BR" : "Estados Unidos", - "ru" : "США", - "zh-CN" : "美国" - } - }, - "subdivisions" : [ - { - "geoname_id" : 6269131, - "iso_code" : "ENG", - "names" : { - "en" : "England", - "es" : "Inglaterra", - "fr" : "Angleterre", - "pt-BR" : "Inglaterra" - } - } - ] - } - }, - { - "::216.160.83.56/125" : { - "city" : { - "geoname_id" : "5803556", - "names" : { - "en" : "Milton", - "ru" : "Мильтон" - } - }, - "continent" : { - "code" : "NA", - "geoname_id" : 6255149, - "names" : { - "de" : "Nordamerika", - "en" : "North America", - "es" : "América del Norte", - "fr" : "Amérique du Nord", - "ja" : "北アメリカ", - "pt-BR" : "América do Norte", - "ru" : "Северная Америка", - "zh-CN" : "北美洲" - } - }, - "country" : { - "geoname_id" : 6252001, - "iso_code" : "US", - "names" : { - "de" : "USA", - "en" : "United States", - "es" : "Estados Unidos", - "fr" : "États-Unis", - "ja" : "アメリカ合衆国", - "pt-BR" : "Estados Unidos", - "ru" : "США", - "zh-CN" : "美国" - } - }, - "location" : { - "accuracy_radius" : 22, - "latitude" : "47.2513", - "longitude" : "-122.3149", - "metro_code" : "819", - "time_zone" : "America/Los_Angeles" - }, - "postal" : { - "code" : "98354" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "subdivisions" : [ - { - "geoname_id" : 5815135, - "iso_code" : "WA", - "names" : { - "en" : "Washington", - "es" : "Washington", - "fr" : "État de Washington", - "ja" : "ワシントン州", - "ru" : "Вашингтон", - "zh-CN" : "华盛顿州" - } - } - ] - } - }, - { - "::89.160.20.112/124" : { - "city" : { - "geoname_id" : "2694762", - "names" : { - "de" : "Linköping", - "en" : "Linköping", - "fr" : "Linköping", - "ja" : "リンシェーピング", - "zh-CN" : "林雪平" - } - }, - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2661886, - "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, - "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, - "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, - "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, - "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/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Connection-Type-Test.json b/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Connection-Type-Test.json deleted file mode 100644 index d02256607..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Connection-Type-Test.json +++ /dev/null @@ -1,102 +0,0 @@ -[ - { - "::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/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Country-Test.json b/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Country-Test.json deleted file mode 100644 index e9d47e0e8..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Country-Test.json +++ /dev/null @@ -1,10975 +0,0 @@ -[ - { - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "FR", - "names" : { - "de" : "Frankreich", - "en" : "France", - "es" : "Francia", - "fr" : "France", - "ja" : "フランス共和国", - "pt-BR" : "França", - "ru" : "Франция", - "zh-CN" : "法国" - } - } - } - }, - { - "2a02:d380::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 130758, - "iso_code" : "IR", - "names" : { - "de" : "Iran (Islamische Republik)", - "en" : "Iran", - "es" : "Irán (República Islámica)", - "fr" : "Iran (République islamique de)", - "ja" : "イラン・イスラム共和国", - "pt-BR" : "República Islâmica do Irã", - "ru" : "Иран", - "zh-CN" : "伊朗伊斯兰共和国" - } - }, - "registered_country" : { - "geoname_id" : 130758, - "iso_code" : "IR", - "names" : { - "de" : "Iran (Islamische Republik)", - "en" : "Iran", - "es" : "Irán (República Islámica)", - "fr" : "Iran (République islamique de)", - "ja" : "イラン・イスラム共和国", - "pt-BR" : "República Islâmica do Irã", - "ru" : "Иран", - "zh-CN" : "伊朗伊斯兰共和国" - } - } - } - }, - { - "2a02:d3c0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:d400::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 719819, - "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, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:d580::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 3017382, - "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, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "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, - "iso_code" : "FR", - "names" : { - "de" : "Frankreich", - "en" : "France", - "es" : "Francia", - "fr" : "France", - "ja" : "フランス共和国", - "pt-BR" : "França", - "ru" : "Франция", - "zh-CN" : "法国" - } - } - } - }, - { - "2a02:d680::/30" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:d6a0::/30" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2921044, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - } - } - }, - { - "2a02:da40::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:da80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2782113, - "iso_code" : "AT", - "names" : { - "de" : "Österreich", - "en" : "Austria", - "es" : "Austria", - "fr" : "Autriche", - "ja" : "オーストリア共和国", - "pt-BR" : "Áustria", - "ru" : "Австрия", - "zh-CN" : "奥地利" - } - }, - "registered_country" : { - "geoname_id" : 2782113, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "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, - "iso_code" : "RO", - "names" : { - "de" : "Rumänien", - "en" : "Romania", - "es" : "Rumanía", - "fr" : "Roumanie", - "ja" : "ルーマニア", - "pt-BR" : "Romênia", - "ru" : "Румыния", - "zh-CN" : "罗马尼亚" - } - } - } - }, - { - "2a02:db80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:dbc0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:dc00::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:dc40::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 298795, - "iso_code" : "TR", - "names" : { - "de" : "Türkei", - "en" : "Turkey", - "es" : "Turquía", - "fr" : "Turquie", - "ja" : "トルコ共和国", - "pt-BR" : "Turquia", - "ru" : "Турция", - "zh-CN" : "土耳其" - } - }, - "registered_country" : { - "geoname_id" : 298795, - "iso_code" : "TR", - "names" : { - "de" : "Türkei", - "en" : "Turkey", - "es" : "Turquía", - "fr" : "Turquie", - "ja" : "トルコ共和国", - "pt-BR" : "Turquia", - "ru" : "Турция", - "zh-CN" : "土耳其" - } - } - } - }, - { - "2a02:dc80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:dcc0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 690791, - "iso_code" : "UA", - "names" : { - "de" : "Ukraine", - "en" : "Ukraine", - "es" : "Ucrania", - "fr" : "Ukraine", - "ja" : "ウクライナ共和国", - "pt-BR" : "Ucrânia", - "ru" : "Украина", - "zh-CN" : "乌克兰" - } - }, - "registered_country" : { - "geoname_id" : 690791, - "iso_code" : "UA", - "names" : { - "de" : "Ukraine", - "en" : "Ukraine", - "es" : "Ucrania", - "fr" : "Ukraine", - "ja" : "ウクライナ共和国", - "pt-BR" : "Ucrânia", - "ru" : "Украина", - "zh-CN" : "乌克兰" - } - } - } - }, - { - "2a02:dd00::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 783754, - "iso_code" : "AL", - "names" : { - "de" : "Albanien", - "en" : "Albania", - "es" : "Albania", - "fr" : "Albanie", - "ja" : "アルバニア共和国", - "pt-BR" : "Albânia", - "ru" : "Албания", - "zh-CN" : "阿尔巴尼亚" - } - }, - "registered_country" : { - "geoname_id" : 783754, - "iso_code" : "AL", - "names" : { - "de" : "Albanien", - "en" : "Albania", - "es" : "Albania", - "fr" : "Albanie", - "ja" : "アルバニア共和国", - "pt-BR" : "Albânia", - "ru" : "Албания", - "zh-CN" : "阿尔巴尼亚" - } - } - } - }, - { - "2a02:dd40::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:dd80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2661886, - "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, - "iso_code" : "SE", - "names" : { - "de" : "Schweden", - "en" : "Sweden", - "es" : "Suecia", - "fr" : "Suède", - "ja" : "スウェーデン王国", - "pt-BR" : "Suécia", - "ru" : "Швеция", - "zh-CN" : "瑞典" - } - } - } - }, - { - "2a02:ddc0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:de00::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:de40::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 294640, - "iso_code" : "IL", - "names" : { - "de" : "Israel", - "en" : "Israel", - "es" : "Israel", - "fr" : "Israël", - "ja" : "イスラエル国", - "pt-BR" : "Israel", - "ru" : "Израиль", - "zh-CN" : "以色列" - } - }, - "registered_country" : { - "geoname_id" : 294640, - "iso_code" : "IL", - "names" : { - "de" : "Israel", - "en" : "Israel", - "es" : "Israel", - "fr" : "Israël", - "ja" : "イスラエル国", - "pt-BR" : "Israel", - "ru" : "Израиль", - "zh-CN" : "以色列" - } - } - } - }, - { - "2a02:de80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:dec0::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 272103, - "iso_code" : "LB", - "names" : { - "de" : "Libanon", - "en" : "Lebanon", - "es" : "Líbano", - "fr" : "Liban", - "ja" : "レバノン共和国", - "pt-BR" : "Líbano", - "ru" : "Ливан", - "zh-CN" : "黎巴嫩" - } - }, - "registered_country" : { - "geoname_id" : 272103, - "iso_code" : "LB", - "names" : { - "de" : "Libanon", - "en" : "Lebanon", - "es" : "Líbano", - "fr" : "Liban", - "ja" : "レバノン共和国", - "pt-BR" : "Líbano", - "ru" : "Ливан", - "zh-CN" : "黎巴嫩" - } - } - } - }, - { - "2a02:df00::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 130758, - "iso_code" : "IR", - "names" : { - "de" : "Iran (Islamische Republik)", - "en" : "Iran", - "es" : "Irán (República Islámica)", - "fr" : "Iran (République islamique de)", - "ja" : "イラン・イスラム共和国", - "pt-BR" : "República Islâmica do Irã", - "ru" : "Иран", - "zh-CN" : "伊朗伊斯兰共和国" - } - }, - "registered_country" : { - "geoname_id" : 130758, - "iso_code" : "IR", - "names" : { - "de" : "Iran (Islamische Republik)", - "en" : "Iran", - "es" : "Irán (República Islámica)", - "fr" : "Iran (République islamique de)", - "ja" : "イラン・イスラム共和国", - "pt-BR" : "República Islâmica do Irã", - "ru" : "Иран", - "zh-CN" : "伊朗伊斯兰共和国" - } - } - } - }, - { - "2a02:df40::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 298795, - "iso_code" : "TR", - "names" : { - "de" : "Türkei", - "en" : "Turkey", - "es" : "Turquía", - "fr" : "Turquie", - "ja" : "トルコ共和国", - "pt-BR" : "Turquia", - "ru" : "Турция", - "zh-CN" : "土耳其" - } - }, - "registered_country" : { - "geoname_id" : 298795, - "iso_code" : "TR", - "names" : { - "de" : "Türkei", - "en" : "Turkey", - "es" : "Turquía", - "fr" : "Turquie", - "ja" : "トルコ共和国", - "pt-BR" : "Turquia", - "ru" : "Турция", - "zh-CN" : "土耳其" - } - } - } - }, - { - "2a02:df80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:dfc0::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 130758, - "iso_code" : "IR", - "names" : { - "de" : "Iran (Islamische Republik)", - "en" : "Iran", - "es" : "Irán (República Islámica)", - "fr" : "Iran (République islamique de)", - "ja" : "イラン・イスラム共和国", - "pt-BR" : "República Islâmica do Irã", - "ru" : "Иран", - "zh-CN" : "伊朗伊斯兰共和国" - } - }, - "registered_country" : { - "geoname_id" : 130758, - "iso_code" : "IR", - "names" : { - "de" : "Iran (Islamische Republik)", - "en" : "Iran", - "es" : "Irán (República Islámica)", - "fr" : "Iran (République islamique de)", - "ja" : "イラン・イスラム共和国", - "pt-BR" : "República Islâmica do Irã", - "ru" : "Иран", - "zh-CN" : "伊朗伊斯兰共和国" - } - } - } - }, - { - "2a02:e000::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 3017382, - "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, - "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, - "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, - "iso_code" : "NL", - "names" : { - "de" : "Niederlande", - "en" : "Netherlands", - "es" : "Holanda", - "fr" : "Pays-Bas", - "ja" : "オランダ王国", - "pt-BR" : "Países Baixos", - "ru" : "Нидерланды", - "zh-CN" : "荷兰" - } - } - } - }, - { - "2a02:e080::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 285570, - "iso_code" : "KW", - "names" : { - "de" : "Kuwait", - "en" : "Kuwait", - "es" : "Kuwait", - "fr" : "Koweït", - "ja" : "クウェート", - "pt-BR" : "Kuwait", - "ru" : "Кувейт", - "zh-CN" : "科威特" - } - }, - "registered_country" : { - "geoname_id" : 285570, - "iso_code" : "KW", - "names" : { - "de" : "Kuwait", - "en" : "Kuwait", - "es" : "Kuwait", - "fr" : "Koweït", - "ja" : "クウェート", - "pt-BR" : "Kuwait", - "ru" : "Кувейт", - "zh-CN" : "科威特" - } - } - } - }, - { - "2a02:e0c0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2658434, - "iso_code" : "CH", - "names" : { - "de" : "Schweiz", - "en" : "Switzerland", - "es" : "Suiza", - "fr" : "Suisse", - "ja" : "スイス連邦", - "pt-BR" : "Suíça", - "ru" : "Швейцария", - "zh-CN" : "瑞士" - } - }, - "registered_country" : { - "geoname_id" : 2658434, - "iso_code" : "CH", - "names" : { - "de" : "Schweiz", - "en" : "Switzerland", - "es" : "Suiza", - "fr" : "Suisse", - "ja" : "スイス連邦", - "pt-BR" : "Suíça", - "ru" : "Швейцария", - "zh-CN" : "瑞士" - } - } - } - }, - { - "2a02:e100::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:e140::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 798544, - "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, - "iso_code" : "PL", - "names" : { - "de" : "Polen", - "en" : "Poland", - "es" : "Polonia", - "fr" : "Pologne", - "ja" : "ポーランド共和国", - "pt-BR" : "Polônia", - "ru" : "Польша", - "zh-CN" : "波兰" - } - } - } - }, - { - "2a02:e180::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:e1c0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2750405, - "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, - "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, - "iso_code" : "AT", - "names" : { - "de" : "Österreich", - "en" : "Austria", - "es" : "Austria", - "fr" : "Autriche", - "ja" : "オーストリア共和国", - "pt-BR" : "Áustria", - "ru" : "Австрия", - "zh-CN" : "奥地利" - } - }, - "registered_country" : { - "geoname_id" : 2782113, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "SE", - "names" : { - "de" : "Schweden", - "en" : "Sweden", - "es" : "Suecia", - "fr" : "Suède", - "ja" : "スウェーデン王国", - "pt-BR" : "Suécia", - "ru" : "Швеция", - "zh-CN" : "瑞典" - } - } - } - }, - { - "2a02:ea00::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2658434, - "iso_code" : "CH", - "names" : { - "de" : "Schweiz", - "en" : "Switzerland", - "es" : "Suiza", - "fr" : "Suisse", - "ja" : "スイス連邦", - "pt-BR" : "Suíça", - "ru" : "Швейцария", - "zh-CN" : "瑞士" - } - }, - "registered_country" : { - "geoname_id" : 2658434, - "iso_code" : "CH", - "names" : { - "de" : "Schweiz", - "en" : "Switzerland", - "es" : "Suiza", - "fr" : "Suisse", - "ja" : "スイス連邦", - "pt-BR" : "Suíça", - "ru" : "Швейцария", - "zh-CN" : "瑞士" - } - } - } - }, - { - "2a02:ea40::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:ea80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 798544, - "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, - "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, - "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, - "iso_code" : "PL", - "names" : { - "de" : "Polen", - "en" : "Poland", - "es" : "Polonia", - "fr" : "Pologne", - "ja" : "ポーランド共和国", - "pt-BR" : "Polônia", - "ru" : "Польша", - "zh-CN" : "波兰" - } - } - } - }, - { - "2a02:eb00::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:eb40::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:eb80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:ebc0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 3017382, - "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, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "CZ", - "names" : { - "de" : "Tschechische Republik", - "en" : "Czech Republic", - "es" : "República Checa", - "fr" : "Tchéquie", - "ja" : "チェコ共和国", - "pt-BR" : "República Checa", - "ru" : "Чешская Республика", - "zh-CN" : "捷克共和国" - } - } - } - }, - { - "2a02:f040::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 290291, - "iso_code" : "BH", - "names" : { - "de" : "Bahrain", - "en" : "Bahrain", - "es" : "Bahréin", - "fr" : "Bahreïn", - "ja" : "バーレーン", - "pt-BR" : "Bahrain", - "ru" : "Бахрейн", - "zh-CN" : "巴林" - } - }, - "registered_country" : { - "geoname_id" : 290291, - "iso_code" : "BH", - "names" : { - "de" : "Bahrain", - "en" : "Bahrain", - "es" : "Bahréin", - "fr" : "Bahreïn", - "ja" : "バーレーン", - "pt-BR" : "Bahrain", - "ru" : "Бахрейн", - "zh-CN" : "巴林" - } - } - } - }, - { - "2a02:f080::/30" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 690791, - "iso_code" : "UA", - "names" : { - "de" : "Ukraine", - "en" : "Ukraine", - "es" : "Ucrania", - "fr" : "Ukraine", - "ja" : "ウクライナ共和国", - "pt-BR" : "Ucrânia", - "ru" : "Украина", - "zh-CN" : "乌克兰" - } - }, - "registered_country" : { - "geoname_id" : 690791, - "iso_code" : "UA", - "names" : { - "de" : "Ukraine", - "en" : "Ukraine", - "es" : "Ucrania", - "fr" : "Ukraine", - "ja" : "ウクライナ共和国", - "pt-BR" : "Ucrânia", - "ru" : "Украина", - "zh-CN" : "乌克兰" - } - } - } - }, - { - "2a02:f0a0::/30" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:f0c0::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 248816, - "iso_code" : "JO", - "names" : { - "de" : "Jordanien", - "en" : "Hashemite Kingdom of Jordan", - "es" : "Jordania", - "fr" : "Jordanie", - "ja" : "ヨルダン・ハシミテ王国", - "pt-BR" : "Jordânia", - "ru" : "Иордания", - "zh-CN" : "约旦" - } - }, - "registered_country" : { - "geoname_id" : 248816, - "iso_code" : "JO", - "names" : { - "de" : "Jordanien", - "en" : "Hashemite Kingdom of Jordan", - "es" : "Jordania", - "fr" : "Jordanie", - "ja" : "ヨルダン・ハシミテ王国", - "pt-BR" : "Jordânia", - "ru" : "Иордания", - "zh-CN" : "约旦" - } - } - } - }, - { - "2a02:f100::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:f140::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2921044, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - } - } - }, - { - "2a02:f380::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:f3c0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 798544, - "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, - "iso_code" : "PL", - "names" : { - "de" : "Polen", - "en" : "Poland", - "es" : "Polonia", - "fr" : "Pologne", - "ja" : "ポーランド共和国", - "pt-BR" : "Polônia", - "ru" : "Польша", - "zh-CN" : "波兰" - } - } - } - }, - { - "2a02:f400::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 290557, - "iso_code" : "AE", - "names" : { - "de" : "Vereinigte Arabische Emirate", - "en" : "United Arab Emirates", - "es" : "Emiratos Árabes Unidos", - "fr" : "Émirats Arabes Unis", - "ja" : "アラブ首長国連邦", - "pt-BR" : "Emirados Árabes Unidos", - "ru" : "Объединенные Арабские Эмираты", - "zh-CN" : "阿拉伯联合酋长国" - } - }, - "registered_country" : { - "geoname_id" : 290557, - "iso_code" : "AE", - "names" : { - "de" : "Vereinigte Arabische Emirate", - "en" : "United Arab Emirates", - "es" : "Emiratos Árabes Unidos", - "fr" : "Émirats Arabes Unis", - "ja" : "アラブ首長国連邦", - "pt-BR" : "Emirados Árabes Unidos", - "ru" : "Объединенные Арабские Эмираты", - "zh-CN" : "阿拉伯联合酋长国" - } - } - } - }, - { - "2a02:f440::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:f480::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 3144096, - "iso_code" : "NO", - "names" : { - "de" : "Norwegen", - "en" : "Norway", - "es" : "Noruega", - "fr" : "Norvège", - "ja" : "ノルウェー王国", - "pt-BR" : "Noruega", - "ru" : "Норвегия", - "zh-CN" : "挪威" - } - }, - "registered_country" : { - "geoname_id" : 3144096, - "iso_code" : "NO", - "names" : { - "de" : "Norwegen", - "en" : "Norway", - "es" : "Noruega", - "fr" : "Norvège", - "ja" : "ノルウェー王国", - "pt-BR" : "Noruega", - "ru" : "Норвегия", - "zh-CN" : "挪威" - } - } - } - }, - { - "2a02:f4c0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2510769, - "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, - "iso_code" : "ES", - "names" : { - "de" : "Spanien", - "en" : "Spain", - "es" : "España", - "fr" : "Espagne", - "ja" : "スペイン", - "pt-BR" : "Espanha", - "ru" : "Испания", - "zh-CN" : "西班牙" - } - } - } - }, - { - "2a02:f500::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:f540::/30" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:f560::/30" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - }, - "registered_country" : { - "geoname_id" : 2017370, - "iso_code" : "RU", - "names" : { - "de" : "Russland", - "en" : "Russia", - "es" : "Rusia", - "fr" : "Russie", - "ja" : "ロシア", - "pt-BR" : "Rússia", - "ru" : "Россия", - "zh-CN" : "俄罗斯" - } - } - } - }, - { - "2a02:f580::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 174982, - "iso_code" : "AM", - "names" : { - "de" : "Armenien", - "en" : "Armenia", - "es" : "Armenia", - "fr" : "Arménie", - "ja" : "アルメニア共和国", - "pt-BR" : "Armênia", - "ru" : "Армения", - "zh-CN" : "亚美尼亚" - } - }, - "registered_country" : { - "geoname_id" : 174982, - "iso_code" : "AM", - "names" : { - "de" : "Armenien", - "en" : "Armenia", - "es" : "Armenia", - "fr" : "Arménie", - "ja" : "アルメニア共和国", - "pt-BR" : "Armênia", - "ru" : "Армения", - "zh-CN" : "亚美尼亚" - } - } - } - }, - { - "2a02:f5c0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2750405, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "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, - "iso_code" : "HU", - "names" : { - "de" : "Ungarn", - "en" : "Hungary", - "es" : "Hungría", - "fr" : "Hongrie", - "ja" : "ハンガリー共和国", - "pt-BR" : "Hungria", - "ru" : "Венгрия", - "zh-CN" : "匈牙利" - } - } - } - }, - { - "2a02:f980::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:f9c0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:fa00::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 102358, - "iso_code" : "SA", - "names" : { - "de" : "Saudi-Arabien", - "en" : "Saudi Arabia", - "es" : "Arabia Saudita", - "fr" : "Arabie saoudite", - "ja" : "サウジアラビア王国", - "pt-BR" : "Arábia Saudita", - "ru" : "Саудовская Аравия", - "zh-CN" : "沙特阿拉伯" - } - }, - "registered_country" : { - "geoname_id" : 102358, - "iso_code" : "SA", - "names" : { - "de" : "Saudi-Arabien", - "en" : "Saudi Arabia", - "es" : "Arabia Saudita", - "fr" : "Arabie saoudite", - "ja" : "サウジアラビア王国", - "pt-BR" : "Arábia Saudita", - "ru" : "Саудовская Аравия", - "zh-CN" : "沙特阿拉伯" - } - } - } - }, - { - "2a02:fa40::/29" : { - "continent" : { - "code" : "AS", - "geoname_id" : 6255147, - "names" : { - "de" : "Asien", - "en" : "Asia", - "es" : "Asia", - "fr" : "Asie", - "ja" : "アジア", - "pt-BR" : "Ásia", - "ru" : "Азия", - "zh-CN" : "亚洲" - } - }, - "country" : { - "geoname_id" : 298795, - "iso_code" : "TR", - "names" : { - "de" : "Türkei", - "en" : "Turkey", - "es" : "Turquía", - "fr" : "Turquie", - "ja" : "トルコ共和国", - "pt-BR" : "Turquia", - "ru" : "Турция", - "zh-CN" : "土耳其" - } - }, - "registered_country" : { - "geoname_id" : 298795, - "iso_code" : "TR", - "names" : { - "de" : "Türkei", - "en" : "Turkey", - "es" : "Turquía", - "fr" : "Turquie", - "ja" : "トルコ共和国", - "pt-BR" : "Turquia", - "ru" : "Турция", - "zh-CN" : "土耳其" - } - } - } - }, - { - "2a02:fa80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2921044, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - } - } - }, - { - "2a02:fb40::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:fb80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 3175395, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "DK", - "names" : { - "de" : "Dänemark", - "en" : "Denmark", - "es" : "Dinamarca", - "fr" : "Danemark", - "ja" : "デンマーク王国", - "pt-BR" : "Dinamarca", - "ru" : "Дания", - "zh-CN" : "丹麦" - } - } - } - }, - { - "2a02:fc80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 3144096, - "iso_code" : "NO", - "names" : { - "de" : "Norwegen", - "en" : "Norway", - "es" : "Noruega", - "fr" : "Norvège", - "ja" : "ノルウェー王国", - "pt-BR" : "Noruega", - "ru" : "Норвегия", - "zh-CN" : "挪威" - } - }, - "registered_country" : { - "geoname_id" : 3144096, - "iso_code" : "NO", - "names" : { - "de" : "Norwegen", - "en" : "Norway", - "es" : "Noruega", - "fr" : "Norvège", - "ja" : "ノルウェー王国", - "pt-BR" : "Noruega", - "ru" : "Норвегия", - "zh-CN" : "挪威" - } - } - } - }, - { - "2a02:fcc0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:fd00::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2921044, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "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, - "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, - "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, - "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, - "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, - "iso_code" : "AT", - "names" : { - "de" : "Österreich", - "en" : "Austria", - "es" : "Austria", - "fr" : "Autriche", - "ja" : "オーストリア共和国", - "pt-BR" : "Áustria", - "ru" : "Австрия", - "zh-CN" : "奥地利" - } - }, - "registered_country" : { - "geoname_id" : 2782113, - "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, - "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, - "iso_code" : "NL", - "names" : { - "de" : "Niederlande", - "en" : "Netherlands", - "es" : "Holanda", - "fr" : "Pays-Bas", - "ja" : "オランダ王国", - "pt-BR" : "Países Baixos", - "ru" : "Нидерланды", - "zh-CN" : "荷兰" - } - } - } - }, - { - "2a02:fe40::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:fe80::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 3175395, - "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, - "iso_code" : "IT", - "names" : { - "de" : "Italien", - "en" : "Italy", - "es" : "Italia", - "fr" : "Italie", - "ja" : "イタリア共和国", - "pt-BR" : "Itália", - "ru" : "Италия", - "zh-CN" : "意大利" - } - } - } - }, - { - "2a02:fec0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "2a02:ff00::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 3175395, - "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, - "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, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - }, - "registered_country" : { - "geoname_id" : 2921044, - "iso_code" : "DE", - "names" : { - "de" : "Deutschland", - "en" : "Germany", - "es" : "Alemania", - "fr" : "Allemagne", - "ja" : "ドイツ連邦共和国", - "pt-BR" : "Alemanha", - "ru" : "Германия", - "zh-CN" : "德国" - } - } - } - }, - { - "2a02:ffc0::/29" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2411586, - "iso_code" : "GI", - "names" : { - "de" : "Gibraltar", - "en" : "Gibraltar", - "es" : "Gibraltar", - "fr" : "Gibraltar", - "ja" : "ジブラルタル", - "pt-BR" : "Gibraltar", - "ru" : "Гибралтар" - } - }, - "registered_country" : { - "geoname_id" : 2411586, - "iso_code" : "GI", - "names" : { - "de" : "Gibraltar", - "en" : "Gibraltar", - "es" : "Gibraltar", - "fr" : "Gibraltar", - "ja" : "ジブラルタル", - "pt-BR" : "Gibraltar", - "ru" : "Гибралтар" - } - } - } - }, - { - "::2.125.160.216/125" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "postal" : { - "code" : "OX1" - }, - "registered_country" : { - "geoname_id" : 3017382, - "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, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 6252001, - "iso_code" : "US", - "names" : { - "de" : "USA", - "en" : "United States", - "es" : "Estados Unidos", - "fr" : "États-Unis", - "ja" : "アメリカ合衆国", - "pt-BR" : "Estados Unidos", - "ru" : "США", - "zh-CN" : "美国" - } - } - } - }, - { - "::81.2.69.144/124" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 6252001, - "iso_code" : "US", - "names" : { - "de" : "USA", - "en" : "United States", - "es" : "Estados Unidos", - "fr" : "États-Unis", - "ja" : "アメリカ合衆国", - "pt-BR" : "Estados Unidos", - "ru" : "США", - "zh-CN" : "美国" - } - } - } - }, - { - "::81.2.69.160/123" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 6252001, - "iso_code" : "US", - "names" : { - "de" : "USA", - "en" : "United States", - "es" : "Estados Unidos", - "fr" : "États-Unis", - "ja" : "アメリカ合衆国", - "pt-BR" : "Estados Unidos", - "ru" : "США", - "zh-CN" : "美国" - } - } - } - }, - { - "::81.2.69.192/124" : { - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "registered_country" : { - "geoname_id" : 6252001, - "iso_code" : "US", - "names" : { - "de" : "USA", - "en" : "United States", - "es" : "Estados Unidos", - "fr" : "États-Unis", - "ja" : "アメリカ合衆国", - "pt-BR" : "Estados Unidos", - "ru" : "США", - "zh-CN" : "美国" - } - } - } - }, - { - "::216.160.83.56/125" : { - "continent" : { - "code" : "NA", - "geoname_id" : 6255149, - "names" : { - "de" : "Nordamerika", - "en" : "North America", - "es" : "América del Norte", - "fr" : "Amérique du Nord", - "ja" : "北アメリカ", - "pt-BR" : "América do Norte", - "ru" : "Северная Америка", - "zh-CN" : "北美洲" - } - }, - "country" : { - "geoname_id" : 6252001, - "iso_code" : "US", - "names" : { - "de" : "USA", - "en" : "United States", - "es" : "Estados Unidos", - "fr" : "États-Unis", - "ja" : "アメリカ合衆国", - "pt-BR" : "Estados Unidos", - "ru" : "США", - "zh-CN" : "美国" - } - }, - "postal" : { - "code" : "98354" - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - } - } - }, - { - "::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, - "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, - "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, - "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, - "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, - "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" - } - } - } -] diff --git a/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-DensityIncome-Test.json b/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-DensityIncome-Test.json deleted file mode 100644 index 21e571798..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-DensityIncome-Test.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "::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/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Domain-Test.json b/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Domain-Test.json deleted file mode 100644 index c8baa7924..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Domain-Test.json +++ /dev/null @@ -1,452 +0,0 @@ -[ - { - "::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/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Enterprise-Test.json b/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Enterprise-Test.json deleted file mode 100644 index ca4260801..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Enterprise-Test.json +++ /dev/null @@ -1,666 +0,0 @@ -[ - { - "::2.125.160.216/125" : { - "city" : { - "confidence" : 50, - "geoname_id" : "2655045", - "names" : { - "en" : "Boxford" - } - }, - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "confidence" : 95, - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "51.7500", - "longitude" : "-1.2500", - "time_zone" : "Europe/London" - }, - "postal" : { - "code" : "OX1", - "confidence" : 20 - }, - "registered_country" : { - "geoname_id" : 3017382, - "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, - "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, - "iso_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, - "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, - "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, - "iso_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/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-ISP-Test.json b/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-ISP-Test.json deleted file mode 100644 index 2ef4993a5..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-ISP-Test.json +++ /dev/null @@ -1,12585 +0,0 @@ -[ - { - "::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/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Precision-Enterprise-Test.json b/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Precision-Enterprise-Test.json deleted file mode 100644 index 0e5796592..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Precision-Enterprise-Test.json +++ /dev/null @@ -1,1035 +0,0 @@ -[ - { - "::2.125.160.216/125" : { - "city" : { - "confidence" : 50, - "geoname_id" : "2655045", - "names" : { - "en" : "Boxford" - } - }, - "continent" : { - "code" : "EU", - "geoname_id" : 6255148, - "names" : { - "de" : "Europa", - "en" : "Europe", - "es" : "Europa", - "fr" : "Europe", - "ja" : "ヨーロッパ", - "pt-BR" : "Europa", - "ru" : "Европа", - "zh-CN" : "欧洲" - } - }, - "country" : { - "confidence" : 95, - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "location" : { - "accuracy_radius" : 100, - "latitude" : "51.7500", - "longitude" : "-1.2500", - "time_zone" : "Europe/London" - }, - "postal" : { - "code" : "OX1", - "confidence" : 20 - }, - "registered_country" : { - "geoname_id" : 3017382, - "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, - "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" - } - } - }, - { - "::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, - "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, - "iso_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, - "iso_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, - "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, - "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" - } - } - }, - { - "::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" - } - } - }, - { - "::216.160.83.56/125" : { - "city" : { - "confidence" : 40, - "geoname_id" : "5803556", - "names" : { - "en" : "Milton", - "ru" : "Мильтон" - } - }, - "continent" : { - "code" : "NA", - "geoname_id" : 6255149, - "names" : { - "de" : "Nordamerika", - "en" : "North America", - "es" : "América del Norte", - "fr" : "Amérique du Nord", - "ja" : "北アメリカ", - "pt-BR" : "América do Norte", - "ru" : "Северная Америка", - "zh-CN" : "北美洲" - } - }, - "country" : { - "confidence" : 99, - "geoname_id" : 6252001, - "iso_code" : "US", - "names" : { - "de" : "USA", - "en" : "United States", - "es" : "Estados Unidos", - "fr" : "États-Unis", - "ja" : "アメリカ合衆国", - "pt-BR" : "Estados Unidos", - "ru" : "США", - "zh-CN" : "美国" - } - }, - "location" : { - "accuracy_radius" : 22, - "latitude" : "47.2513", - "longitude" : "-122.3149", - "metro_code" : "819", - "time_zone" : "America/Los_Angeles" - }, - "postal" : { - "code" : "98354", - "confidence" : 40 - }, - "registered_country" : { - "geoname_id" : 2635167, - "iso_code" : "GB", - "names" : { - "de" : "Vereinigtes Königreich", - "en" : "United Kingdom", - "es" : "Reino Unido", - "fr" : "Royaume-Uni", - "ja" : "イギリス", - "pt-BR" : "Reino Unido", - "ru" : "Великобритания", - "zh-CN" : "英国" - } - }, - "subdivisions" : [ - { - "confidence" : 99, - "geoname_id" : 5815135, - "iso_code" : "WA", - "names" : { - "en" : "Washington", - "es" : "Washington", - "fr" : "État de Washington", - "ja" : "ワシントン州", - "ru" : "Вашингтон", - "zh-CN" : "华盛顿州" - } - } - ], - "traits" : { - "autonomous_system_number" : 209, - "connection_type" : "Cable/DSL", - "isp" : "Century Link", - "organization" : "Lariat Software", - "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, - "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, - "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 - } - } - } -] diff --git a/3rd/libmaxminddb/t/maxmind-db/source-data/GeoLite2-ASN-Test.json b/3rd/libmaxminddb/t/maxmind-db/source-data/GeoLite2-ASN-Test.json deleted file mode 100644 index 94b733b6f..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/source-data/GeoLite2-ASN-Test.json +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - "::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/3rd/libmaxminddb/t/maxmind-db/source-data/README b/3rd/libmaxminddb/t/maxmind-db/source-data/README deleted file mode 100644 index 11a3e7b30..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/source-data/README +++ /dev/null @@ -1,13 +0,0 @@ -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 is a single example IP address, modified slightly to -include all fields. - -The Precision files is the normal GeoIP2 files with an additional marker -(128.101.101.101) to differentiate the two. diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Anonymous-IP-Test.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Anonymous-IP-Test.mmdb deleted file mode 100644 index 14b418102..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Anonymous-IP-Test.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb deleted file mode 100644 index dc803d41e..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-City-Test-Invalid-Node-Count.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-City-Test-Invalid-Node-Count.mmdb deleted file mode 100644 index c0a080758..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-City-Test-Invalid-Node-Count.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-City-Test.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-City-Test.mmdb deleted file mode 100644 index b93cf7dcd..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-City-Test.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Connection-Type-Test.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Connection-Type-Test.mmdb deleted file mode 100644 index ec6cbd2d5..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Connection-Type-Test.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Country-Test.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Country-Test.mmdb deleted file mode 100644 index d7124e488..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Country-Test.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-DensityIncome-Test.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-DensityIncome-Test.mmdb deleted file mode 100644 index 0c45343ba..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-DensityIncome-Test.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Domain-Test.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Domain-Test.mmdb deleted file mode 100644 index 216372f67..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Domain-Test.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Enterprise-Test.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Enterprise-Test.mmdb deleted file mode 100644 index ae9b21b8b..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Enterprise-Test.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-ISP-Test.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-ISP-Test.mmdb deleted file mode 100644 index 875738ec0..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-ISP-Test.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Precision-Enterprise-Test.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Precision-Enterprise-Test.mmdb deleted file mode 100644 index 7b1d4b4fb..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Precision-Enterprise-Test.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoLite2-ASN-Test.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/GeoLite2-ASN-Test.mmdb deleted file mode 100644 index ab8cd89fc..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/GeoLite2-ASN-Test.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb deleted file mode 100644 index 4b50b8264..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-string-value-entries.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-string-value-entries.mmdb deleted file mode 100644 index 799a31c19..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-string-value-entries.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-broken-pointers-24.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-broken-pointers-24.mmdb deleted file mode 100644 index d534c4678..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-broken-pointers-24.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-broken-search-tree-24.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-broken-search-tree-24.mmdb deleted file mode 100644 index 49d80775b..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-broken-search-tree-24.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-decoder.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-decoder.mmdb deleted file mode 100644 index e0e73b054..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-decoder.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv4-24.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv4-24.mmdb deleted file mode 100644 index c4138e4b5..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv4-24.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv4-28.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv4-28.mmdb deleted file mode 100644 index 728beb762..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv4-28.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv4-32.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv4-32.mmdb deleted file mode 100644 index 162c7fd49..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv4-32.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv6-24.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv6-24.mmdb deleted file mode 100644 index 4249d47b4..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv6-24.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv6-28.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv6-28.mmdb deleted file mode 100644 index da72f4fca..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv6-28.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv6-32.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv6-32.mmdb deleted file mode 100644 index 3705f8680..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv6-32.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-metadata-pointers.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-metadata-pointers.mmdb deleted file mode 100644 index fae094ee6..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-metadata-pointers.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-mixed-24.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-mixed-24.mmdb deleted file mode 100644 index 19e6188e1..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-mixed-24.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-mixed-28.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-mixed-28.mmdb deleted file mode 100644 index 4707051ca..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-mixed-28.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-mixed-32.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-mixed-32.mmdb deleted file mode 100644 index f1ccfcb56..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-mixed-32.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-nested.mmdb b/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-nested.mmdb deleted file mode 100644 index d77e4ca2b..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-nested.mmdb and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/README.md b/3rd/libmaxminddb/t/maxmind-db/test-data/README.md deleted file mode 100644 index e656b1500..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/test-data/README.md +++ /dev/null @@ -1,26 +0,0 @@ -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 -[souce-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/3rd/libmaxminddb/t/maxmind-db/test-data/maps-with-pointers.raw b/3rd/libmaxminddb/t/maxmind-db/test-data/maps-with-pointers.raw deleted file mode 100644 index c9b25010e..000000000 Binary files a/3rd/libmaxminddb/t/maxmind-db/test-data/maps-with-pointers.raw and /dev/null differ diff --git a/3rd/libmaxminddb/t/maxmind-db/test-data/write-test-data.pl b/3rd/libmaxminddb/t/maxmind-db/test-data/write-test-data.pl deleted file mode 100755 index e5a56acbe..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/test-data/write-test-data.pl +++ /dev/null @@ -1,614 +0,0 @@ -#!/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::Slurp qw( read_file write_file ); -use 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_file( $filename, { binmode => ':raw' } ); - - # 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_file( $filename, $content, { binmode => ':raw' } ); - - 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( @{$_}, 'Test' ) - for ( - [ 'GeoIP2-Anonymous-IP', 1 ], - [ 'GeoIP2-City', 0 ], - [ 'GeoIP2-Connection-Type', 0 ], - [ 'GeoIP2-Country', 0 ], - [ 'GeoIP2-DensityIncome', 0 ], - [ 'GeoIP2-Domain', 0 ], - [ 'GeoIP2-Enterprise', 0 ], - [ 'GeoIP2-ISP', 0 ], - [ 'GeoIP2-Precision-Enterprise', 0 ], - [ 'GeoLite2-ASN', 0 ], - ); -} - -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', - is_anonymous => 'boolean', - is_anonymous_proxy => 'boolean', - is_anonymous_vpn => 'boolean', - is_hosting_provider => '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 = 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) if $populate_all_networks; - - my $nodes = decode_json( - read_file( - "$Dir/../source-data/$type-Test.json", - binmode => ':raw' - ) - ); - - 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 $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 => {} ); - } -} - -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/3rd/libmaxminddb/t/maxmind-db/tidyall.ini b/3rd/libmaxminddb/t/maxmind-db/tidyall.ini deleted file mode 100644 index ae979b8bc..000000000 --- a/3rd/libmaxminddb/t/maxmind-db/tidyall.ini +++ /dev/null @@ -1,5 +0,0 @@ -[PerlTidy] -select = **/*.{pl,pm,t} - -[JSON] -select = **/*.json diff --git a/3rd/libmaxminddb/t/maxminddb_test_helper.c b/3rd/libmaxminddb/t/maxminddb_test_helper.c deleted file mode 100644 index 0bd53deff..000000000 --- a/3rd/libmaxminddb/t/maxminddb_test_helper.c +++ /dev/null @@ -1,247 +0,0 @@ -#if HAVE_CONFIG_H -#include -#endif - -#define _POSIX_C_SOURCE 200112L -#include -#include -#include - -#include "maxminddb.h" -#include "maxminddb_test_helper.h" - -#ifdef _WIN32 -#include -#else -#include -#include -#endif - -void for_all_record_sizes(const char *filename_fmt, - void (*tests)(int record_size, - const char *filename, - const char *description)) { - int sizes[] = {24, 28, 32}; - for (int i = 0; i < 3; i++) { - int size = sizes[i]; - - char filename[500]; - snprintf(filename, 500, filename_fmt, size); - - char description[14]; - snprintf(description, 14, "%i bit record", size); - - tests(size, filename, description); - } -} - -void for_all_modes(void (*tests)(int mode, const char *description)) { - tests(MMDB_MODE_MMAP, "mmap mode"); -} - -const char *test_database_path(const char *filename) { - char *test_db_dir; -#ifdef _WIN32 - test_db_dir = "../t/maxmind-db/test-data"; -#else - char cwd[500]; - char *UNUSED(tmp) = getcwd(cwd, 500); - - if (strcmp(basename(cwd), "t") == 0) { - test_db_dir = "./maxmind-db/test-data"; - } else { - test_db_dir = "./t/maxmind-db/test-data"; - } -#endif - - char *path = malloc(500); - assert(NULL != path); - - snprintf(path, 500, "%s/%s", test_db_dir, filename); - - return (const char *)path; -} - -const char *dup_entry_string_or_bail(MMDB_entry_data_s entry_data) { - const char *string = - mmdb_strndup(entry_data.utf8_string, entry_data.data_size); - if (NULL == string) { - BAIL_OUT("mmdb_strndup failed"); - } - - return string; -} - -MMDB_s *open_ok(const char *db_file, int mode, const char *mode_desc) { - if (0 != access(db_file, R_OK)) { - BAIL_OUT("could not read the specified file - %s\nIf you are in a git " - "checkout try running 'git submodule update --init'", - db_file); - } - - MMDB_s *mmdb = (MMDB_s *)calloc(1, sizeof(MMDB_s)); - - if (NULL == mmdb) { - BAIL_OUT("could not allocate memory for our MMDB_s struct"); - } - - int status = MMDB_open(db_file, mode, mmdb); - - int is_ok = ok(MMDB_SUCCESS == status, - "open %s status is success - %s", - db_file, - mode_desc); - - if (!is_ok) { - diag("open status code = %d (%s)", status, MMDB_strerror(status)); - free(mmdb); - return NULL; - } - - is_ok = ok(mmdb->file_size > 0, - "mmdb struct has been set for %s - %s", - db_file, - mode_desc); - - if (!is_ok) { - free(mmdb); - return NULL; - } - - return mmdb; -} - -MMDB_lookup_result_s lookup_string_ok(MMDB_s *mmdb, - const char *ip, - const char *file, - const char *mode_desc) { - int gai_error, mmdb_error; - MMDB_lookup_result_s result = - MMDB_lookup_string(mmdb, ip, &gai_error, &mmdb_error); - - test_lookup_errors( - gai_error, mmdb_error, "MMDB_lookup_string", ip, file, mode_desc); - - return result; -} - -MMDB_lookup_result_s lookup_sockaddr_ok(MMDB_s *mmdb, - const char *ip, - const char *file, - const char *mode_desc) { - int ai_flags = AI_NUMERICHOST; - struct addrinfo hints = {.ai_socktype = SOCK_STREAM}; - struct addrinfo *addresses = NULL; - - if (ip[0] == ':') { - hints.ai_flags = ai_flags; -#if defined AI_V4MAPPED && !defined __FreeBSD__ - hints.ai_flags |= AI_V4MAPPED; -#endif - hints.ai_family = AF_INET6; - } else { - hints.ai_flags = ai_flags; - hints.ai_family = AF_INET; - } - - int gai_error = getaddrinfo(ip, NULL, &hints, &addresses); - - int mmdb_error = 0; - MMDB_lookup_result_s result = {.found_entry = false}; - if (gai_error == 0) { - result = MMDB_lookup_sockaddr(mmdb, addresses->ai_addr, &mmdb_error); - } - if (NULL != addresses) { - freeaddrinfo(addresses); - } - - test_lookup_errors( - gai_error, mmdb_error, "MMDB_lookup_sockaddr", ip, file, mode_desc); - - return result; -} - -void test_lookup_errors(int gai_error, - int mmdb_error, - const char *function, - const char *ip, - const char *file, - const char *mode_desc) { - - int is_ok = ok(0 == gai_error, - "no getaddrinfo error in call to %s for %s - %s - %s", - function, - ip, - file, - mode_desc); - - if (!is_ok) { - diag("error from call to getaddrinfo for %s - %s", - ip, - gai_strerror(gai_error)); - } - - is_ok = ok(0 == mmdb_error, - "no MMDB error in call to %s for %s - %s - %s", - function, - ip, - file, - mode_desc); - - if (!is_ok) { - diag("MMDB error - %s", MMDB_strerror(mmdb_error)); - } -} - -MMDB_entry_data_s data_ok(MMDB_lookup_result_s *result, - uint32_t expect_type, - const char *description, - ...) { - va_list keys; - va_start(keys, description); - - MMDB_entry_data_s data; - int status = MMDB_vget_value(&result->entry, &data, keys); - - va_end(keys); - - if (cmp_ok(status, - "==", - MMDB_SUCCESS, - "no error from call to MMDB_vget_value - %s", - description)) { - - if (!cmp_ok(data.type, - "==", - expect_type, - "got the expected data type - %s", - description)) { - - diag(" data type value is %i but expected %i", - data.type, - expect_type); - } - } else { - diag(" error from MMDB_vget_value - %s", MMDB_strerror(status)); - } - - return data; -} - -void compare_double(double got, double expect) { - double diff = fabs(got - expect); - int is_ok = ok(diff < 0.01, "double value was approximately %2.6f", expect); - if (!is_ok) { - diag( - " got %2.6f but expected %2.6f (diff = %2.6f)", got, expect, diff); - } -} - -void compare_float(float got, float expect) { - float diff = fabsf(got - expect); - int is_ok = ok(diff < 0.01, "float value was approximately %2.1f", expect); - if (!is_ok) { - diag( - " got %2.4f but expected %2.1f (diff = %2.1f)", got, expect, diff); - } -} diff --git a/3rd/libmaxminddb/t/maxminddb_test_helper.h b/3rd/libmaxminddb/t/maxminddb_test_helper.h deleted file mode 100644 index c08900cc0..000000000 --- a/3rd/libmaxminddb/t/maxminddb_test_helper.h +++ /dev/null @@ -1,72 +0,0 @@ -/* Some test files may require something newer */ -#if !defined(_GNU_SOURCE) && !defined(_POSIX_C_SOURCE) -#define _POSIX_C_SOURCE 200112L -#endif - -#if HAVE_CONFIG_H -#include -#endif -#include "libtap/tap.h" -#include "maxminddb-compat-util.h" -#include "maxminddb.h" -#include -#include -#include - -#ifdef _WIN32 -#include -#include - -#define R_OK 4 - -#else -#include -#endif - -#if (_MSC_VER && _MSC_VER < 1900) -/* _snprintf has security issues, but I don't think it is worth - worrying about for the unit tests. */ -#define snprintf _snprintf -#endif - -#ifndef MMDB_TEST_HELPER_C -#define MMDB_TEST_HELPER_C (1) - -#ifdef __GNUC__ -#define UNUSED(x) UNUSED_##x __attribute__((__unused__)) -#else -#define UNUSED -#endif - -#define MAX_DESCRIPTION_LENGTH 500 - -extern void for_all_record_sizes(const char *filename_fmt, - void (*tests)(int record_size, - const char *filename, - const char *description)); -extern void for_all_modes(void (*tests)(int mode, const char *description)); -extern const char *test_database_path(const char *filename); -extern const char *dup_entry_string_or_bail(MMDB_entry_data_s entry_data); -extern MMDB_s *open_ok(const char *db_file, int mode, const char *mode_desc); -extern MMDB_lookup_result_s lookup_string_ok(MMDB_s *mmdb, - const char *ip, - const char *file, - const char *mode_desc); -extern MMDB_lookup_result_s lookup_sockaddr_ok(MMDB_s *mmdb, - const char *ip, - const char *file, - const char *mode_desc); -extern void test_lookup_errors(int gai_error, - int mmdb_error, - const char *function, - const char *ip, - const char *file, - const char *mode_desc); -extern MMDB_entry_data_s data_ok(MMDB_lookup_result_s *result, - uint32_t expect_type, - const char *description, - ...); -extern void compare_double(double got, double expect); -extern void compare_float(float got, float expect); - -#endif diff --git a/3rd/libmaxminddb/t/metadata_pointers_t.c b/3rd/libmaxminddb/t/metadata_pointers_t.c deleted file mode 100644 index 645be6ced..000000000 --- a/3rd/libmaxminddb/t/metadata_pointers_t.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "maxminddb_test_helper.h" - -void run_tests(int mode, const char *mode_desc) { - const char *filename = "MaxMind-DB-test-metadata-pointers.mmdb"; - const char *path = test_database_path(filename); - MMDB_s *mmdb = open_ok(path, mode, mode_desc); - free((void *)path); - - char *repeated_string = "Lots of pointers in metadata"; - - is(mmdb->metadata.database_type, - repeated_string, - "decoded pointer database_type"); - - for (uint16_t i = 0; i < mmdb->metadata.description.count; i++) { - const char *language = - mmdb->metadata.description.descriptions[i]->language; - const char *description = - mmdb->metadata.description.descriptions[i]->description; - is(description, repeated_string, "%s description", language); - } - - MMDB_close(mmdb); - free(mmdb); -} - -int main(void) { - plan(NO_PLAN); - for_all_modes(&run_tests); - done_testing(); -} diff --git a/3rd/libmaxminddb/t/metadata_t.c b/3rd/libmaxminddb/t/metadata_t.c deleted file mode 100644 index 696e3ecc9..000000000 --- a/3rd/libmaxminddb/t/metadata_t.c +++ /dev/null @@ -1,271 +0,0 @@ -#include "maxminddb_test_helper.h" - -void test_metadata(MMDB_s *mmdb, const char *mode_desc) { - cmp_ok(mmdb->metadata.node_count, - "==", - 37, - "node_count is 37 - %s", - mode_desc); - cmp_ok(mmdb->metadata.record_size, - "==", - 24, - "record_size is 24 - %s", - mode_desc); - cmp_ok( - mmdb->metadata.ip_version, "==", 4, "ip_version is 4 - %s", mode_desc); - is(mmdb->metadata.database_type, - "Test", - "database_type is Test - %s", - mode_desc); - // 2013-07-01T00:00:00Z - uint64_t expect_epoch = 1372636800; - int is_ok = cmp_ok(mmdb->metadata.build_epoch, - ">=", - expect_epoch, - "build_epoch > %lli", - expect_epoch); - if (!is_ok) { - diag(" epoch is %lli", mmdb->metadata.build_epoch); - } - - cmp_ok(mmdb->metadata.binary_format_major_version, - "==", - 2, - "binary_format_major_version is 2 - %s", - mode_desc); - cmp_ok(mmdb->metadata.binary_format_minor_version, - "==", - 0, - "binary_format_minor_version is 0 - %s", - mode_desc); - - cmp_ok(mmdb->metadata.languages.count, - "==", - 2, - "found 2 languages - %s", - mode_desc); - is(mmdb->metadata.languages.names[0], - "en", - "first language is en - %s", - mode_desc); - is(mmdb->metadata.languages.names[1], - "zh", - "second language is zh - %s", - mode_desc); - - cmp_ok(mmdb->metadata.description.count, - "==", - 2, - "found 2 descriptions - %s", - mode_desc); - for (uint16_t i = 0; i < mmdb->metadata.description.count; i++) { - const char *language = - mmdb->metadata.description.descriptions[i]->language; - const char *description = - mmdb->metadata.description.descriptions[i]->description; - if (strncmp(language, "en", 2) == 0) { - ok(1, "found en description"); - is(description, "Test Database", "en description"); - } else if (strncmp(language, "zh", 2) == 0) { - ok(1, "found zh description"); - is(description, "Test Database Chinese", "zh description"); - } else { - ok(0, - "found unknown description in unexpected language - %s", - language); - } - } - - cmp_ok(mmdb->full_record_byte_size, - "==", - 6, - "full_record_byte_size is 6 - %s", - mode_desc); -} - -MMDB_entry_data_list_s * -test_languages_value(MMDB_entry_data_list_s *entry_data_list) { - MMDB_entry_data_list_s *languages = entry_data_list = entry_data_list->next; - - cmp_ok(languages->entry_data.type, - "==", - MMDB_DATA_TYPE_ARRAY, - "'languages' key's value is an array"); - cmp_ok(languages->entry_data.data_size, - "==", - 2, - "'languages' key's value has 2 elements"); - - MMDB_entry_data_list_s *idx0 = entry_data_list = entry_data_list->next; - cmp_ok(idx0->entry_data.type, - "==", - MMDB_DATA_TYPE_UTF8_STRING, - "first array entry is a UTF8_STRING"); - const char *lang0 = dup_entry_string_or_bail(idx0->entry_data); - is(lang0, "en", "first language is en"); - free((void *)lang0); - - MMDB_entry_data_list_s *idx1 = entry_data_list = entry_data_list->next; - cmp_ok(idx1->entry_data.type, - "==", - MMDB_DATA_TYPE_UTF8_STRING, - "second array entry is a UTF8_STRING"); - const char *lang1 = dup_entry_string_or_bail(idx1->entry_data); - is(lang1, "zh", "second language is zh"); - free((void *)lang1); - - return entry_data_list; -} - -MMDB_entry_data_list_s * -test_description_value(MMDB_entry_data_list_s *entry_data_list) { - MMDB_entry_data_list_s *description = entry_data_list = - entry_data_list->next; - cmp_ok(description->entry_data.type, - "==", - MMDB_DATA_TYPE_MAP, - "'description' key's value is a map"); - cmp_ok(description->entry_data.data_size, - "==", - 2, - "'description' key's value has 2 key/value pairs"); - - for (int i = 0; i < 2; i++) { - MMDB_entry_data_list_s *key = entry_data_list = entry_data_list->next; - cmp_ok(key->entry_data.type, - "==", - MMDB_DATA_TYPE_UTF8_STRING, - "found a map key in 'map'"); - const char *key_name = dup_entry_string_or_bail(key->entry_data); - - MMDB_entry_data_list_s *value = entry_data_list = entry_data_list->next; - cmp_ok(value->entry_data.type, - "==", - MMDB_DATA_TYPE_UTF8_STRING, - "map value is a UTF8_STRING"); - const char *description = dup_entry_string_or_bail(value->entry_data); - - if (strcmp(key_name, "en") == 0) { - is(description, - "Test Database", - "en description == 'Test Database'"); - } else if (strcmp(key_name, "zh") == 0) { - is(description, - "Test Database Chinese", - "zh description == 'Test Database Chinese'"); - } else { - ok(0, "unknown key found in description map - %s", key_name); - } - - free((void *)key_name); - free((void *)description); - } - - return entry_data_list; -} - -void test_metadata_as_data_entry_list(MMDB_s *mmdb, const char *mode_desc) { - MMDB_entry_data_list_s *entry_data_list, *first; - int status = MMDB_get_metadata_as_entry_data_list(mmdb, &entry_data_list); - - first = entry_data_list; - - cmp_ok(status, - "==", - MMDB_SUCCESS, - "get metadata as data_entry_list - %s", - mode_desc); - - cmp_ok(first->entry_data.data_size, - "==", - 9, - "metadata map has 9 key/value pairs"); - - while (1) { - MMDB_entry_data_list_s *key = entry_data_list = entry_data_list->next; - - if (!key) { - break; - } - - cmp_ok(key->entry_data.type, - "==", - MMDB_DATA_TYPE_UTF8_STRING, - "found a map key"); - - const char *key_name = dup_entry_string_or_bail(key->entry_data); - if (strcmp(key_name, "node_count") == 0) { - MMDB_entry_data_list_s *value = entry_data_list = - entry_data_list->next; - cmp_ok(value->entry_data.uint32, "==", 37, "node_count == 37"); - } else if (strcmp(key_name, "record_size") == 0) { - MMDB_entry_data_list_s *value = entry_data_list = - entry_data_list->next; - cmp_ok(value->entry_data.uint16, "==", 24, "record_size == 24"); - } else if (strcmp(key_name, "ip_version") == 0) { - MMDB_entry_data_list_s *value = entry_data_list = - entry_data_list->next; - cmp_ok(value->entry_data.uint16, "==", 4, "ip_version == 4"); - } else if (strcmp(key_name, "binary_format_major_version") == 0) { - MMDB_entry_data_list_s *value = entry_data_list = - entry_data_list->next; - cmp_ok(value->entry_data.uint16, - "==", - 2, - "binary_format_major_version == 2"); - } else if (strcmp(key_name, "binary_format_minor_version") == 0) { - MMDB_entry_data_list_s *value = entry_data_list = - entry_data_list->next; - cmp_ok(value->entry_data.uint16, - "==", - 0, - "binary_format_minor_version == 0"); - } else if (strcmp(key_name, "build_epoch") == 0) { - MMDB_entry_data_list_s *value = entry_data_list = - entry_data_list->next; - ok(value->entry_data.uint64 > 1373571901, - "build_epoch > 1373571901"); - } else if (strcmp(key_name, "database_type") == 0) { - MMDB_entry_data_list_s *value = entry_data_list = - entry_data_list->next; - const char *type = dup_entry_string_or_bail(value->entry_data); - is(type, "Test", "type == Test"); - free((void *)type); - } else if (strcmp(key_name, "languages") == 0) { - entry_data_list = test_languages_value(entry_data_list); - } else if (strcmp(key_name, "description") == 0) { - entry_data_list = test_description_value(entry_data_list); - } else { - ok(0, "unknown key found in metadata map - %s", key_name); - } - - free((void *)key_name); - } - - MMDB_free_entry_data_list(first); -} - -void run_tests(int mode, const char *mode_desc) { - const char *file = "MaxMind-DB-test-ipv4-24.mmdb"; - const char *path = test_database_path(file); - MMDB_s *mmdb = open_ok(path, mode, mode_desc); - - // All of the remaining tests require an open mmdb - if (NULL == mmdb) { - diag("could not open %s - skipping remaining tests", path); - return; - } - free((void *)path); - - test_metadata(mmdb, mode_desc); - test_metadata_as_data_entry_list(mmdb, mode_desc); - - MMDB_close(mmdb); - free(mmdb); -} - -int main(void) { - plan(NO_PLAN); - for_all_modes(&run_tests); - done_testing(); -} diff --git a/3rd/libmaxminddb/t/mmdblookup_t.pl b/3rd/libmaxminddb/t/mmdblookup_t.pl deleted file mode 100755 index 236360c93..000000000 --- a/3rd/libmaxminddb/t/mmdblookup_t.pl +++ /dev/null @@ -1,158 +0,0 @@ -#!/usr/bin/env perl - -use strict; -use warnings; - -use FindBin qw( $Bin ); - -eval <<'EOF'; -use Test::More 0.88; -use IPC::Run3 qw( run3 ); -EOF - -if ($@) { - print - "1..0 # skip all tests skipped - these tests need the Test::More 0.88, IPC::Run3 and Test::Output modules:\n"; - print "$@"; - exit 0; -} - -my $mmdblookup = "$Bin/../bin/mmdblookup"; -my $test_data_dir = "$Bin/maxmind-db/test-data"; - -{ - ok( -x $mmdblookup, 'mmdblookup script is executable' ); -} - -for my $arg (qw( -h -? --help )) { - _test_stdout( - [$arg], - qr{mmdblookup --file.+This application accepts the following options:}s, - 0, - "help output from $arg" - ); -} - -_test_both( - [], - qr{mmdblookup --file.+This application accepts the following options:}s, - qr{ERROR: You must provide a filename with --file}, - 1, - "help output with no CLI options" -); - -_test_stderr( - [qw( --file foo )], - qr{ERROR: You must provide an IP address with --ip}, - 1, - 'error when no --ip is given' -); - -_test_stdout( - [qw( --version )], - qr/mmdblookup version \d+\.\d+\.\d+/, - 0, - 'output for --version' -); - -_test_stdout( - ['--file', "$test_data_dir/GeoIP2-City-Test.mmdb", '--ip', '2.125.160.216'], - qr/"en"\s*:\s*"Boxford"/, - 0, - 'output for 2.125.160.216' -); - -_test_stdout( - ['--file', "$test_data_dir/GeoIP2-City-Test.mmdb", '--ip', '2.125.160.216', '--verbose'], - qr/Database metadata.+"en"\s*:\s*"Boxford"/s, - 0, - 'verbose output for 2.125.160.216' -); - -_test_stdout( - ['--file', "$test_data_dir/GeoIP2-City-Test.mmdb", '--ip', '2.125.160.216', qw( location latitude )], - qr/^\s*51\.750000 \s*$/s, - 0, - 'output for 2.125.160.216 with lookup path' -); - -_test_stderr( - [ qw( --file this/path/better/not/exist.mmdb --ip 1.2.3.4 ) ], - qr{Can't open this/path/better/not/exist.mmdb}s, - 2, - 'error for file that does not exist' -); - -_test_stderr( - ['--file', "$test_data_dir/GeoIP2-City-Test.mmdb", '--ip', 'not-an-ip-address' ], - qr{Error from call to getaddrinfo for not-an-ip-address}s, - 3, - 'error for bad IP address' -); - -_test_stderr( - ['--file', "$test_data_dir/GeoIP2-City-Test.mmdb", '--ip', '10.2.3.4' ], - qr{\QCould not find an entry for this IP address (10.2.3.4)}s, - 6, - 'error for bad PI address' -); - -done_testing(); - -sub _test_stdout { - my $args = shift; - my $expect_stdout = shift; - my $expect_status = shift; - my $desc = shift; - - _test_both( $args, $expect_stdout, q{}, $expect_status, $desc ); -} - -sub _test_stderr { - my $args = shift; - my $expect_stderr = shift; - my $expect_status = shift; - my $desc = shift; - - _test_both( $args, undef, $expect_stderr, $expect_status, $desc ); -} - -sub _test_both { - my $args = shift; - my $expect_stdout = shift; - my $expect_stderr = shift; - my $expect_status = shift; - my $desc = shift; - - my $stdout; - my $stderr; - run3( - [ $mmdblookup, @{$args} ], - \undef, - \$stdout, - \$stderr, - ); - - my $exit_status = $? >> 8; - - # We don't need to retest that the help output shows up for all errors - if ( defined $expect_stdout ) { - like( - $stdout, - $expect_stdout, - "stdout for mmdblookup @{$args}" - ); - } - - if ( ref $expect_stderr ) { - like( $stderr, $expect_stderr, "stderr for mmdblookup @{$args}" ); - } - else { - is( $stderr, $expect_stderr, "stderr for mmdblookup @{$args}" ); - } - - is( - $exit_status, $expect_status, - "exit status was $expect_status for mmdblookup @{$args}" - ); -} diff --git a/3rd/libmaxminddb/t/no_map_get_value_t.c b/3rd/libmaxminddb/t/no_map_get_value_t.c deleted file mode 100644 index b7f75383f..000000000 --- a/3rd/libmaxminddb/t/no_map_get_value_t.c +++ /dev/null @@ -1,34 +0,0 @@ -#include "maxminddb_test_helper.h" - -void run_tests(int mode, const char *mode_desc) { - const char *filename = "MaxMind-DB-string-value-entries.mmdb"; - const char *path = test_database_path(filename); - MMDB_s *mmdb = open_ok(path, mode, mode_desc); - free((void *)path); - - const char *ip = "1.1.1.1"; - MMDB_lookup_result_s result = - lookup_string_ok(mmdb, ip, filename, mode_desc); - - MMDB_entry_data_s entry_data; - int status = MMDB_get_value(&result.entry, &entry_data, NULL); - - cmp_ok(status, - "==", - MMDB_SUCCESS, - "status for MMDB_get_value() is MMDB_SUCCESS"); - ok(entry_data.has_data, "found a value when varargs list is just NULL"); - cmp_ok(entry_data.type, - "==", - MMDB_DATA_TYPE_UTF8_STRING, - "returned entry type is utf8_string"); - - MMDB_close(mmdb); - free(mmdb); -} - -int main(void) { - plan(NO_PLAN); - for_all_modes(&run_tests); - done_testing(); -} diff --git a/3rd/libmaxminddb/t/read_node_t.c b/3rd/libmaxminddb/t/read_node_t.c deleted file mode 100644 index 1db466b30..000000000 --- a/3rd/libmaxminddb/t/read_node_t.c +++ /dev/null @@ -1,250 +0,0 @@ -#include "maxminddb_test_helper.h" - -void test_entry_data(MMDB_s *mmdb, - MMDB_entry_s *entry, - uint32_t node_number, - char *node_record) { - MMDB_entry_data_s entry_data; - int status = MMDB_get_value(entry, &entry_data, "ip", NULL); - cmp_ok(status, "==", MMDB_SUCCESS, "successful data lookup for node"); - cmp_ok(entry_data.type, - "==", - MMDB_DATA_TYPE_UTF8_STRING, - "returned entry type is UTF8_STRING for %s record of node %i", - node_record, - node_number); -} - -void run_read_node_tests(MMDB_s *mmdb, - const uint32_t tests[][5], - int test_count, - uint8_t record_size) { - for (int i = 0; i < test_count; i++) { - uint32_t node_number = tests[i][0]; - MMDB_search_node_s node; - int status = MMDB_read_node(mmdb, node_number, &node); - if (MMDB_SUCCESS == status) { - cmp_ok(node.left_record, - "==", - tests[i][1], - "left record for node %i is %i - %i bit DB", - node_number, - tests[i][1], - record_size); - cmp_ok(node.left_record_type, - "==", - tests[i][2], - "left record type for node %i is %i", - node_number, - tests[i][2]); - if (node.left_record_type == MMDB_RECORD_TYPE_DATA) { - test_entry_data( - mmdb, &node.left_record_entry, node_number, "left"); - } - - cmp_ok(node.right_record, - "==", - tests[i][3], - "right record for node %i is %i - %i bit DB", - node_number, - tests[i][3], - record_size); - cmp_ok(node.right_record_type, - "==", - tests[i][4], - "right record type for node %i is %i", - node_number, - tests[i][4]); - - if (node.right_record_type == MMDB_RECORD_TYPE_DATA) { - test_entry_data( - mmdb, &node.right_record_entry, node_number, "right"); - } - } else { - diag("call to MMDB_read_node for node %i failed - %i bit DB", - node_number, - record_size); - } - } -} - -void run_24_bit_record_tests(int mode, const char *mode_desc) { - const char *filename = "MaxMind-DB-test-mixed-24.mmdb"; - const char *path = test_database_path(filename); - MMDB_s *mmdb = open_ok(path, mode, mode_desc); - free((void *)path); - - const uint32_t tests[7][5] = { - {0, 1, MMDB_RECORD_TYPE_SEARCH_NODE, 242, MMDB_RECORD_TYPE_EMPTY}, - { - 80, - 81, - MMDB_RECORD_TYPE_SEARCH_NODE, - 197, - MMDB_RECORD_TYPE_SEARCH_NODE, - }, - { - 96, - 97, - MMDB_RECORD_TYPE_SEARCH_NODE, - 242, - MMDB_RECORD_TYPE_EMPTY, - }, - { - 103, - 242, - MMDB_RECORD_TYPE_EMPTY, - 104, - MMDB_RECORD_TYPE_SEARCH_NODE, - }, - { - 127, - 242, - MMDB_RECORD_TYPE_EMPTY, - 315, - MMDB_RECORD_TYPE_DATA, - }, - { - 132, - 329, - MMDB_RECORD_TYPE_DATA, - 242, - MMDB_RECORD_TYPE_EMPTY, - }, - { - 241, - 96, - MMDB_RECORD_TYPE_SEARCH_NODE, - 242, - MMDB_RECORD_TYPE_EMPTY, - }}; - run_read_node_tests(mmdb, tests, 7, 24); - - MMDB_close(mmdb); - free(mmdb); -} - -void run_28_bit_record_tests(int mode, const char *mode_desc) { - const char *filename = "MaxMind-DB-test-mixed-28.mmdb"; - const char *path = test_database_path(filename); - MMDB_s *mmdb = open_ok(path, mode, mode_desc); - free((void *)path); - - const uint32_t tests[7][5] = { - {0, 1, MMDB_RECORD_TYPE_SEARCH_NODE, 242, MMDB_RECORD_TYPE_EMPTY}, - { - 80, - 81, - MMDB_RECORD_TYPE_SEARCH_NODE, - 197, - MMDB_RECORD_TYPE_SEARCH_NODE, - }, - { - 96, - 97, - MMDB_RECORD_TYPE_SEARCH_NODE, - 242, - MMDB_RECORD_TYPE_EMPTY, - }, - { - 103, - 242, - MMDB_RECORD_TYPE_EMPTY, - 104, - MMDB_RECORD_TYPE_SEARCH_NODE, - }, - { - 127, - 242, - MMDB_RECORD_TYPE_EMPTY, - 315, - MMDB_RECORD_TYPE_DATA, - }, - { - 132, - 329, - MMDB_RECORD_TYPE_DATA, - 242, - MMDB_RECORD_TYPE_EMPTY, - }, - { - 241, - 96, - MMDB_RECORD_TYPE_SEARCH_NODE, - 242, - MMDB_RECORD_TYPE_EMPTY, - }}; - run_read_node_tests(mmdb, tests, 7, 28); - - MMDB_close(mmdb); - free(mmdb); -} - -void run_32_bit_record_tests(int mode, const char *mode_desc) { - const char *filename = "MaxMind-DB-test-mixed-32.mmdb"; - const char *path = test_database_path(filename); - MMDB_s *mmdb = open_ok(path, mode, mode_desc); - free((void *)path); - - const uint32_t tests[7][5] = { - {0, 1, MMDB_RECORD_TYPE_SEARCH_NODE, 242, MMDB_RECORD_TYPE_EMPTY}, - { - 80, - 81, - MMDB_RECORD_TYPE_SEARCH_NODE, - 197, - MMDB_RECORD_TYPE_SEARCH_NODE, - }, - { - 96, - 97, - MMDB_RECORD_TYPE_SEARCH_NODE, - 242, - MMDB_RECORD_TYPE_EMPTY, - }, - { - 103, - 242, - MMDB_RECORD_TYPE_EMPTY, - 104, - MMDB_RECORD_TYPE_SEARCH_NODE, - }, - { - 127, - 242, - MMDB_RECORD_TYPE_EMPTY, - 315, - MMDB_RECORD_TYPE_DATA, - }, - { - 132, - 329, - MMDB_RECORD_TYPE_DATA, - 242, - MMDB_RECORD_TYPE_EMPTY, - }, - { - 241, - 96, - MMDB_RECORD_TYPE_SEARCH_NODE, - 242, - MMDB_RECORD_TYPE_EMPTY, - }}; - - run_read_node_tests(mmdb, tests, 7, 32); - - MMDB_close(mmdb); - free(mmdb); -} - -void run_tests(int mode, const char *mode_desc) { - run_24_bit_record_tests(mode, mode_desc); - run_28_bit_record_tests(mode, mode_desc); - run_32_bit_record_tests(mode, mode_desc); -} - -int main(void) { - plan(NO_PLAN); - for_all_modes(&run_tests); - done_testing(); -} diff --git a/3rd/libmaxminddb/t/threads_t.c b/3rd/libmaxminddb/t/threads_t.c deleted file mode 100644 index 8b9508749..000000000 --- a/3rd/libmaxminddb/t/threads_t.c +++ /dev/null @@ -1,204 +0,0 @@ -#include "maxminddb_test_helper.h" -#include - -typedef struct thread_arg { - int thread_id; - MMDB_s *mmdb; - const char *ip_to_lookup; -} thread_arg_s; - -typedef struct test_result { - const char *ip_looked_up; - int lookup_string_gai_error; - int lookup_string_mmdb_error; - int found_entry; - int get_value_status; - int data_type_ok; - char *data_value; -} test_result_s; - -void test_one_ip(MMDB_s *mmdb, const char *ip, test_result_s *test_result) { - - test_result->ip_looked_up = ip; - - int gai_error = 0; - int mmdb_error = 0; - MMDB_lookup_result_s result = - MMDB_lookup_string(mmdb, ip, &gai_error, &mmdb_error); - - test_result->lookup_string_gai_error = gai_error; - if (gai_error) { - return; - } - - test_result->lookup_string_mmdb_error = mmdb_error; - if (mmdb_error) { - return; - } - - test_result->found_entry = result.found_entry; - if (!result.found_entry) { - return; - } - - MMDB_entry_data_s data; - int status = MMDB_get_value(&result.entry, &data, "ip", NULL); - - test_result->get_value_status = status; - if (status) { - return; - } - - test_result->data_type_ok = data.type == MMDB_DATA_TYPE_UTF8_STRING; - if (!test_result->data_type_ok) { - return; - } - - test_result->data_value = mmdb_strndup(data.utf8_string, data.data_size); - - return; -} - -void *run_one_thread(void *arg) { - thread_arg_s *thread_arg = (thread_arg_s *)arg; - - MMDB_s *mmdb = thread_arg->mmdb; - const char *ip = thread_arg->ip_to_lookup; - - test_result_s *result = malloc(sizeof(test_result_s)); - if (!result) { - BAIL_OUT("could not allocate memory"); - } - test_one_ip(mmdb, ip, result); - - pthread_exit((void *)result); -} - -void process_result(test_result_s *result, - const char *expect, - const char *mode_desc) { - int is_ok; - is_ok = ok(!result->lookup_string_gai_error, - "no getaddrinfo error for %s - %s", - result->ip_looked_up, - mode_desc); - if (!is_ok) { - return; - } - - is_ok = ok(!result->lookup_string_mmdb_error, - "no mmdb error for %s - %s", - result->ip_looked_up, - mode_desc); - if (!is_ok) { - return; - } - - is_ok = ok(result->found_entry, - "got a result for %s in the database - %s", - result->ip_looked_up, - mode_desc); - if (!is_ok) { - return; - } - - is_ok = ok(!result->get_value_status, - "no error from MMDB_get_value for %s - %s", - result->ip_looked_up, - mode_desc); - if (!is_ok) { - return; - } - - is_ok = ok(result->data_type_ok, - "MMDB_get_value found a utf8_string at 'ip' key for %s - %s", - result->ip_looked_up, - mode_desc); - if (!is_ok) { - return; - } - - is(result->data_value, - expect, - "found expected result for 'ip' key for %s - %s", - result->ip_looked_up, - mode_desc); -} - -void run_ipX_tests(MMDB_s *mmdb, - const char *pairs[][2], - int pairs_rows, - int mode, - const char *mode_desc) { - pthread_t threads[pairs_rows]; - struct thread_arg thread_args[pairs_rows]; - - for (int i = 0; i < pairs_rows; i += 1) { - thread_args[i].thread_id = i; - thread_args[i].mmdb = mmdb; - thread_args[i].ip_to_lookup = pairs[i][0]; - - int error = - pthread_create(&threads[i], NULL, run_one_thread, &thread_args[i]); - if (error) { - BAIL_OUT("pthread_create failed"); - } - } - - for (int i = 0; i < pairs_rows; i += 1) { - void *thread_return; - int error = pthread_join(threads[i], &thread_return); - if (error) { - BAIL_OUT("pthread_join failed"); - } - - test_result_s *test_result = (test_result_s *)thread_return; - if (NULL != test_result) { - process_result(test_result, pairs[i][1], mode_desc); - if (test_result->data_type_ok) { - free(test_result->data_value); - } - free(test_result); - } - } -} - -void run_tests(int mode, const char *mode_desc) { - const char *filename = "MaxMind-DB-test-mixed-32.mmdb"; - const char *path = test_database_path(filename); - MMDB_s *mmdb = open_ok(path, mode, mode_desc); - free((void *)path); - - const char *pairs[18][2] = { - {"1.1.1.1", "::1.1.1.1"}, - {"1.1.1.2", "::1.1.1.2"}, - {"1.1.1.3", "::1.1.1.2"}, - {"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"}, - {"1.1.1.32", "::1.1.1.32"}, - {"::1:ffff:ffff", "::1:ffff:ffff"}, - {"::2:0:0", "::2:0:0"}, - {"::2:0:1a", "::2:0:0"}, - {"::2:0:40", "::2:0:40"}, - {"::2:0:4f", "::2:0:40"}, - {"::2:0:50", "::2:0:50"}, - {"::2:0:52", "::2:0:50"}, - {"::2:0:58", "::2:0:58"}, - {"::2:0:59", "::2:0:58"}, - }; - - run_ipX_tests(mmdb, pairs, 18, mode, mode_desc); - - MMDB_close(mmdb); - free(mmdb); -} - -int main(void) { - plan(NO_PLAN); - for_all_modes(&run_tests); - done_testing(); - pthread_exit(NULL); -} diff --git a/3rd/libmaxminddb/t/version_t.c b/3rd/libmaxminddb/t/version_t.c deleted file mode 100644 index 401d2a5e6..000000000 --- a/3rd/libmaxminddb/t/version_t.c +++ /dev/null @@ -1,9 +0,0 @@ -#include "maxminddb_test_helper.h" - -int main(void) { - const char *version = MMDB_lib_version(); - if (ok((version != NULL), "MMDB_lib_version exists")) { - is(version, PACKAGE_VERSION, "version is " PACKAGE_VERSION); - } - done_testing(); -} diff --git a/CMakeLists.txt b/CMakeLists.txt index e09ace96b..3caa6d861 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,10 +3,10 @@ cmake_minimum_required(VERSION 3.13) list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") # this is the source of truth for version, which will be written to config.h include file. -project(vizer VERSION 3.2.0) -set(VIZER_PRERELEASE "-develop") -set(VIZER_VERSION_NUM "${PROJECT_VERSION}${VIZER_PRERELEASE}") -set(VIZER_VERSION " pktvisor ${PROJECT_VERSION}${VIZER_PRERELEASE}") +project(visor VERSION 3.2.0) +set(VISOR_PRERELEASE "-develop") +set(VISOR_VERSION_NUM "${PROJECT_VERSION}${VISOR_PRERELEASE}") +set(VISOR_VERSION " pktvisor ${PROJECT_VERSION}${VISOR_PRERELEASE}") set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) @@ -21,9 +21,12 @@ conan_add_remote(NAME bincrafters INDEX 1 URL https://api.bintray.com/conan/bincrafters/public-conan VERIFY_SSL True) +conan_cmake_autodetect(settings) + conan_cmake_install(PATH_OR_REFERENCE ${CMAKE_SOURCE_DIR} BUILD missing GENERATOR cmake + SETTINGS ${settings} INSTALL_FOLDER ${CMAKE_BINARY_DIR}) include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) @@ -32,7 +35,7 @@ conan_basic_setup() find_package(Corrade REQUIRED PluginManager) include(sanitizer) -set(VIZER_STATIC_PLUGINS) +set(VISOR_STATIC_PLUGINS) enable_testing() add_subdirectory(3rd) diff --git a/README.md b/README.md index 2292b86c8..06c98b339 100644 --- a/README.md +++ b/README.md @@ -213,9 +213,9 @@ output will contain the JSON summarization output, which you can capture or pipe $ docker run --rm -v /pktvisor/src/tests/fixtures:/pcaps ns1labs/pktvisor pktvisor-pcap /pcaps/dns_ipv4_udp.pcap | jq . -[2021-03-11 18:45:04.572] [pktvisor] [info] Load input plugin: PcapInputModulePlugin dev.vizer.module.input/1.0 -[2021-03-11 18:45:04.573] [pktvisor] [info] Load handler plugin: DnsHandler dev.vizer.module.handler/1.0 -[2021-03-11 18:45:04.573] [pktvisor] [info] Load handler plugin: NetHandler dev.vizer.module.handler/1.0 +[2021-03-11 18:45:04.572] [pktvisor] [info] Load input plugin: PcapInputModulePlugin dev.visor.module.input/1.0 +[2021-03-11 18:45:04.573] [pktvisor] [info] Load handler plugin: DnsHandler dev.visor.module.handler/1.0 +[2021-03-11 18:45:04.573] [pktvisor] [info] Load handler plugin: NetHandler dev.visor.module.handler/1.0 ... processed 140 packets { diff --git a/cmd/pktvisor-pcap/CMakeLists.txt b/cmd/pktvisor-pcap/CMakeLists.txt index 9602fdfe1..79fba690a 100644 --- a/cmd/pktvisor-pcap/CMakeLists.txt +++ b/cmd/pktvisor-pcap/CMakeLists.txt @@ -2,11 +2,11 @@ add_executable(pktvisor-pcap main.cpp) target_include_directories(pktvisor-pcap PRIVATE - ${CMAKE_BINARY_DIR}/src # Vizer::Core config.h + ${CMAKE_BINARY_DIR}/src # Visor::Core config.h ) target_link_libraries(pktvisor-pcap PRIVATE ${CONAN_LIBS_DOCOPT.CPP} - Vizer::Handler::Net - Vizer::Handler::Dns) + Visor::Handler::Net + Visor::Handler::Dns) diff --git a/cmd/pktvisor-pcap/main.cpp b/cmd/pktvisor-pcap/main.cpp index c2eb639cc..f79639583 100644 --- a/cmd/pktvisor-pcap/main.cpp +++ b/cmd/pktvisor-pcap/main.cpp @@ -19,7 +19,7 @@ #include "handlers/static_plugins.h" #include "inputs/static_plugins.h" -#include "vizer_config.h" +#include "visor_config.h" #include "GeoDB.h" #include "handlers/dns/DnsStreamHandler.h" @@ -58,7 +58,7 @@ void signal_handler(int signal) } } -using namespace vizer; +using namespace visor; typedef Corrade::PluginManager::Manager InputPluginRegistry; typedef Corrade::PluginManager::Manager HandlerPluginRegistry; @@ -82,7 +82,7 @@ int main(int argc, char *argv[]) std::map args = docopt::docopt(USAGE, {argv + 1, argv + argc}, true, // show help if requested - VIZER_VERSION); // version string + VISOR_VERSION); // version string auto logger = spdlog::stderr_color_mt("pktvisor"); if (args["-v"].asBool()) { diff --git a/cmd/pktvisord/CMakeLists.txt b/cmd/pktvisord/CMakeLists.txt index 86dbbae11..d0e737e4a 100644 --- a/cmd/pktvisord/CMakeLists.txt +++ b/cmd/pktvisord/CMakeLists.txt @@ -2,7 +2,7 @@ add_executable(pktvisord main.cpp) target_include_directories(pktvisord PRIVATE - ${CMAKE_BINARY_DIR}/src # Vizer::Core config.h + ${CMAKE_BINARY_DIR}/src # Visor::Core config.h ) target_link_libraries(pktvisord @@ -10,6 +10,6 @@ target_link_libraries(pktvisord timer resolv ${CONAN_LIBS_DOCOPT.CPP} - Vizer::Core - ${VIZER_STATIC_PLUGINS} + Visor::Core + ${VISOR_STATIC_PLUGINS} ) diff --git a/cmd/pktvisord/main.cpp b/cmd/pktvisord/main.cpp index bd57f491e..30ede438d 100644 --- a/cmd/pktvisord/main.cpp +++ b/cmd/pktvisord/main.cpp @@ -8,7 +8,7 @@ #include "CoreServer.h" #include "handlers/static_plugins.h" #include "inputs/static_plugins.h" -#include "vizer_config.h" +#include "visor_config.h" #include #include #include @@ -63,7 +63,7 @@ void signal_handler(int signal) } } -using namespace vizer; +using namespace visor; void initialize_geo(const docopt::value &city, const docopt::value &asn) { @@ -81,7 +81,7 @@ int main(int argc, char *argv[]) std::map args = docopt::docopt(USAGE, {argv + 1, argv + argc}, true, // show help if requested - VIZER_VERSION); // version string + VISOR_VERSION); // version string auto logger = spdlog::stdout_color_mt("pktvisor"); if (args["-v"].asBool()) { @@ -120,7 +120,7 @@ int main(int argc, char *argv[]) std::shared_ptr timer_handle; auto usage_metrics = [&logger] { u_char buf[1024]; - std::string version_str{VIZER_VERSION_NUM}; + std::string version_str{VISOR_VERSION_NUM}; std::reverse(version_str.begin(), version_str.end()); std::string target = version_str + ".pktvisord.metrics.pktvisor.dev."; logger->info("sending anonymous usage metrics (once/day, use --no-track to disable): {}", target); diff --git a/integration_tests/CMakeLists.txt b/integration_tests/CMakeLists.txt index 7ad847299..63169655e 100644 --- a/integration_tests/CMakeLists.txt +++ b/integration_tests/CMakeLists.txt @@ -6,16 +6,16 @@ set(PCAP_BINARY ${CMAKE_BINARY_DIR}/bin/pktvisor-pcap) set(INT_SH ${CMAKE_SOURCE_DIR}/integration_tests/integration.sh) set(WORKING_DIR ${CMAKE_SOURCE_DIR}/integration_tests) -macro(vizer_int_test name) +macro(visor_int_test name) add_test(NAME ${name} WORKING_DIRECTORY ${WORKING_DIR} COMMAND ${INT_SH} ${PCAP_BINARY} ${TEMPLATE_DIR}/${name} -- ${HOST_VAR} --geo-city ${FIXTURE_DIR}/GeoIP2-City-Test.mmdb --geo-asn ${FIXTURE_DIR}/GeoIP2-ISP-Test.mmdb ${FIXTURE_DIR}/${name}.pcap) endmacro() -vizer_int_test(dns_ipv4_udp) -vizer_int_test(dns_ipv4_tcp) -vizer_int_test(dns_ipv6_udp) -vizer_int_test(dns_ipv6_tcp) +visor_int_test(dns_ipv4_udp) +visor_int_test(dns_ipv4_tcp) +visor_int_test(dns_ipv6_udp) +visor_int_test(dns_ipv6_tcp) # this allows local, non-public integration tests (for example, on private pcap data) #add_test(NAME external-tests diff --git a/src/AbstractManager.h b/src/AbstractManager.h index 523691a98..e45f690b0 100644 --- a/src/AbstractManager.h +++ b/src/AbstractManager.h @@ -11,7 +11,7 @@ #include #include -namespace vizer { +namespace visor { /** * called from HTTP threads so must be thread safe diff --git a/src/AbstractMetricsManager.h b/src/AbstractMetricsManager.h index c8a5a24f1..054537cf8 100644 --- a/src/AbstractMetricsManager.h +++ b/src/AbstractMetricsManager.h @@ -22,7 +22,7 @@ #include #include #include -namespace vizer { +namespace visor { using json = nlohmann::json; diff --git a/src/AbstractModule.h b/src/AbstractModule.h index b5d6e7fc0..6423f3483 100644 --- a/src/AbstractModule.h +++ b/src/AbstractModule.h @@ -12,7 +12,7 @@ #include #include -namespace vizer { +namespace visor { using json = nlohmann::json; diff --git a/src/AbstractPlugin.cpp b/src/AbstractPlugin.cpp index 46ccac514..04c055d1a 100644 --- a/src/AbstractPlugin.cpp +++ b/src/AbstractPlugin.cpp @@ -6,7 +6,7 @@ #include #include -namespace vizer { +namespace visor { void AbstractPlugin::_check_schema(json obj, SchemaMap &required, SchemaMap &optional) { diff --git a/src/AbstractPlugin.h b/src/AbstractPlugin.h index b4bd9cfa1..a292b2f42 100644 --- a/src/AbstractPlugin.h +++ b/src/AbstractPlugin.h @@ -11,7 +11,7 @@ #include #include -namespace vizer { +namespace visor { using json = nlohmann::json; diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bc8d51a04..41cbc3f9c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,27 +1,27 @@ -message(STATUS "vizer-core") +message(STATUS "visor-core") find_package(Corrade REQUIRED PluginManager) set_directory_properties(PROPERTIES CORRADE_USE_PEDANTIC_FLAGS ON) -add_library(vizer-core +add_library(visor-core AbstractPlugin.cpp InputModulePlugin.cpp HandlerModulePlugin.cpp GeoDB.cpp CoreServer.cpp ) -add_library(Vizer::Core ALIAS vizer-core) +add_library(Visor::Core ALIAS visor-core) -target_include_directories(vizer-core +target_include_directories(visor-core PRIVATE - ${CMAKE_BINARY_DIR}/src # Vizer::Core config.h + ${CMAKE_BINARY_DIR}/src # Visor::Core config.h INTERFACE $ ) -target_link_libraries(vizer-core +target_link_libraries(visor-core PUBLIC datasketches rng @@ -30,15 +30,15 @@ target_link_libraries(vizer-core ${CONAN_LIBS_CORRADE} ${CONAN_LIBS_SPDLOG} ${CONAN_LIBS_FMT} - ${VIZER_STATIC_PLUGINS} + ${VISOR_STATIC_PLUGINS} ) -configure_file(vizer_config.h.in vizer_config.h @ONLY) +configure_file(visor_config.h.in visor_config.h @ONLY) add_subdirectory(inputs) add_subdirectory(handlers) -set(VIZER_STATIC_PLUGINS ${VIZER_STATIC_PLUGINS} PARENT_SCOPE) +set(VISOR_STATIC_PLUGINS ${VISOR_STATIC_PLUGINS} PARENT_SCOPE) ## TEST SUITE add_executable(unit-tests-vizor-core @@ -52,7 +52,7 @@ target_include_directories(unit-tests-vizor-core PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ) -target_link_libraries(unit-tests-vizor-core PRIVATE Vizer::Core) +target_link_libraries(unit-tests-vizor-core PRIVATE Visor::Core) add_test(NAME unit-tests-vizor-core WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/tests diff --git a/src/CoreServer.cpp b/src/CoreServer.cpp index fd79f4a12..f4be33af1 100644 --- a/src/CoreServer.cpp +++ b/src/CoreServer.cpp @@ -3,12 +3,12 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ #include "CoreServer.h" -#include "vizer_config.h" +#include "visor_config.h" #include #include #include -vizer::CoreServer::CoreServer(bool read_only, std::shared_ptr logger) +visor::CoreServer::CoreServer(bool read_only, std::shared_ptr logger) : _svr(read_only) , _logger(logger) , _start_time(std::chrono::system_clock::now()) @@ -38,7 +38,7 @@ vizer::CoreServer::CoreServer(bool read_only, std::shared_ptr lo _setup_routes(); } -void vizer::CoreServer::start(const std::string &host, int port) +void visor::CoreServer::start(const std::string &host, int port) { if (!_svr.bind_to_port(host.c_str(), port)) { throw std::runtime_error("unable to bind host/port"); @@ -48,7 +48,7 @@ void vizer::CoreServer::start(const std::string &host, int port) throw std::runtime_error("error during listen"); } } -void vizer::CoreServer::stop() +void visor::CoreServer::stop() { _svr.stop(); @@ -68,11 +68,11 @@ void vizer::CoreServer::stop() } } } -vizer::CoreServer::~CoreServer() +visor::CoreServer::~CoreServer() { stop(); } -void vizer::CoreServer::_setup_routes() +void visor::CoreServer::_setup_routes() { _logger->info("Initialize server control plane"); @@ -87,7 +87,7 @@ void vizer::CoreServer::_setup_routes() _svr.Get("/api/v1/metrics/app", [&]([[maybe_unused]] const httplib::Request &req, httplib::Response &res) { json j; try { - j["app"]["version"] = VIZER_VERSION_NUM; + j["app"]["version"] = VISOR_VERSION_NUM; j["app"]["up_time_min"] = float(std::chrono::duration_cast(std::chrono::system_clock::now() - _start_time).count()) / 60; res.set_content(j.dump(), "text/json"); } catch (const std::exception &e) { diff --git a/src/CoreServer.h b/src/CoreServer.h index 818b4be07..dc8ff112c 100644 --- a/src/CoreServer.h +++ b/src/CoreServer.h @@ -14,7 +14,7 @@ #include #include -namespace vizer { +namespace visor { class CoreServer { @@ -31,7 +31,7 @@ class CoreServer HandlerPluginRegistry _handler_registry; std::vector _handler_plugins; - vizer::HttpServer _svr; + visor::HttpServer _svr; std::unique_ptr _input_manager; std::unique_ptr _handler_manager; diff --git a/src/GeoDB.cpp b/src/GeoDB.cpp index 92346856d..e78ae5274 100644 --- a/src/GeoDB.cpp +++ b/src/GeoDB.cpp @@ -6,7 +6,7 @@ #include #include -namespace vizer::geo { +namespace visor::geo { MaxmindDB &GeoIP() { diff --git a/src/GeoDB.h b/src/GeoDB.h index 9300473e8..99684e69d 100644 --- a/src/GeoDB.h +++ b/src/GeoDB.h @@ -7,7 +7,7 @@ #include #include -namespace vizer::geo { +namespace visor::geo { class MaxmindDB { diff --git a/src/HandlerManager.h b/src/HandlerManager.h index 936905cc8..6bce028b0 100644 --- a/src/HandlerManager.h +++ b/src/HandlerManager.h @@ -7,7 +7,7 @@ #include "AbstractManager.h" #include "StreamHandler.h" -namespace vizer { +namespace visor { /** * called from HTTP threads so must be thread safe diff --git a/src/HandlerModulePlugin.cpp b/src/HandlerModulePlugin.cpp index 3f1c98dbd..8859c0d3f 100644 --- a/src/HandlerModulePlugin.cpp +++ b/src/HandlerModulePlugin.cpp @@ -6,7 +6,7 @@ #include #include -namespace vizer { +namespace visor { void HandlerModulePlugin::init_module(InputStreamManager *im, HandlerManager *hm, HttpServer &svr) diff --git a/src/HandlerModulePlugin.h b/src/HandlerModulePlugin.h index b79e9a39c..b568ff16e 100644 --- a/src/HandlerModulePlugin.h +++ b/src/HandlerModulePlugin.h @@ -9,20 +9,20 @@ #include "InputStreamManager.h" #include -namespace vizer { +namespace visor { class HandlerModulePlugin : public AbstractPlugin { protected: - vizer::InputStreamManager *_input_manager; - vizer::HandlerManager *_handler_manager; + visor::InputStreamManager *_input_manager; + visor::HandlerManager *_handler_manager; virtual void _setup_routes(HttpServer &svr) = 0; public: static std::string pluginInterface() { - return "dev.vizer.module.handler/1.0"; + return "dev.visor.module.handler/1.0"; } static std::vector pluginSearchPaths() diff --git a/src/HttpServer.h b/src/HttpServer.h index b57581bbc..b3a7bee8e 100644 --- a/src/HttpServer.h +++ b/src/HttpServer.h @@ -7,7 +7,7 @@ #include #include -namespace vizer { +namespace visor { class HttpServer : public httplib::Server { bool _read_only = true; diff --git a/src/InputModulePlugin.cpp b/src/InputModulePlugin.cpp index 3719eb354..3b571c788 100644 --- a/src/InputModulePlugin.cpp +++ b/src/InputModulePlugin.cpp @@ -6,7 +6,7 @@ #include #include -namespace vizer { +namespace visor { void InputModulePlugin::init_module(InputStreamManager *im, HttpServer &svr) { diff --git a/src/InputModulePlugin.h b/src/InputModulePlugin.h index 6da6e3fcc..079395a87 100644 --- a/src/InputModulePlugin.h +++ b/src/InputModulePlugin.h @@ -8,20 +8,20 @@ #include "InputStreamManager.h" #include -namespace vizer { +namespace visor { class InputModulePlugin : public AbstractPlugin { protected: - vizer::InputStreamManager *_input_manager; + visor::InputStreamManager *_input_manager; virtual void _setup_routes(HttpServer &svr) = 0; public: static std::string pluginInterface() { - return "dev.vizer.module.input/1.0"; + return "dev.visor.module.input/1.0"; } static std::vector pluginSearchPaths() diff --git a/src/InputStream.h b/src/InputStream.h index 48476cde0..19d5a6852 100644 --- a/src/InputStream.h +++ b/src/InputStream.h @@ -7,7 +7,7 @@ #include "AbstractModule.h" #include "StreamHandler.h" -namespace vizer { +namespace visor { class InputStream : public AbstractModule { diff --git a/src/InputStreamManager.h b/src/InputStreamManager.h index f0cd4e07b..7ce3fa0d4 100644 --- a/src/InputStreamManager.h +++ b/src/InputStreamManager.h @@ -7,7 +7,7 @@ #include "AbstractManager.h" #include "InputStream.h" -namespace vizer { +namespace visor { /** * called from HTTP threads so must be thread safe diff --git a/src/StreamHandler.h b/src/StreamHandler.h index 2360a3cc7..4ae6a9c0d 100644 --- a/src/StreamHandler.h +++ b/src/StreamHandler.h @@ -9,7 +9,7 @@ #include #include -namespace vizer { +namespace visor { using json = nlohmann::json; diff --git a/src/handlers/CMakeLists.txt b/src/handlers/CMakeLists.txt index 47674c6d7..97ffdf919 100644 --- a/src/handlers/CMakeLists.txt +++ b/src/handlers/CMakeLists.txt @@ -2,4 +2,4 @@ add_subdirectory(net) add_subdirectory(dns) -set(VIZER_STATIC_PLUGINS ${VIZER_STATIC_PLUGINS} PARENT_SCOPE) +set(VISOR_STATIC_PLUGINS ${VISOR_STATIC_PLUGINS} PARENT_SCOPE) diff --git a/src/handlers/dns/CMakeLists.txt b/src/handlers/dns/CMakeLists.txt index 878e0bbeb..826ed8bc8 100644 --- a/src/handlers/dns/CMakeLists.txt +++ b/src/handlers/dns/CMakeLists.txt @@ -2,7 +2,7 @@ message(STATUS "Handler Module: DNS") set_directory_properties(PROPERTIES CORRADE_USE_PEDANTIC_FLAGS ON) -corrade_add_static_plugin(VizerHandlerDns +corrade_add_static_plugin(VisorHandlerDns ${CMAKE_CURRENT_BINARY_DIR} DnsHandler.conf DnsHandlerModulePlugin.cpp @@ -14,19 +14,19 @@ corrade_add_static_plugin(VizerHandlerDns DnsResource.cpp DnsResourceData.cpp ) -add_library(Vizer::Handler::Dns ALIAS VizerHandlerDns) +add_library(Visor::Handler::Dns ALIAS VisorHandlerDns) -target_include_directories(VizerHandlerDns +target_include_directories(VisorHandlerDns INTERFACE $ ) -target_link_libraries(VizerHandlerDns +target_link_libraries(VisorHandlerDns PUBLIC - Vizer::Input::Pcap + Visor::Input::Pcap ) -set(VIZER_STATIC_PLUGINS ${VIZER_STATIC_PLUGINS} Vizer::Handler::Dns PARENT_SCOPE) +set(VISOR_STATIC_PLUGINS ${VISOR_STATIC_PLUGINS} Visor::Handler::Dns PARENT_SCOPE) ## TEST SUITE add_executable(unit-tests-handler-dns @@ -35,7 +35,7 @@ add_executable(unit-tests-handler-dns tests/test_dns_layer.cpp ) -target_link_libraries(unit-tests-handler-dns PRIVATE Vizer::Handler::Dns) +target_link_libraries(unit-tests-handler-dns PRIVATE Visor::Handler::Dns) add_test(NAME unit-tests-handler-dns WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/tests diff --git a/src/handlers/dns/DnsHandlerModulePlugin.cpp b/src/handlers/dns/DnsHandlerModulePlugin.cpp index f5ab85426..126ca040b 100644 --- a/src/handlers/dns/DnsHandlerModulePlugin.cpp +++ b/src/handlers/dns/DnsHandlerModulePlugin.cpp @@ -8,12 +8,12 @@ #include #include -CORRADE_PLUGIN_REGISTER(VizerHandlerDns, vizer::handler::dns::DnsHandlerModulePlugin, - "dev.vizer.module.handler/1.0") +CORRADE_PLUGIN_REGISTER(VisorHandlerDns, visor::handler::dns::DnsHandlerModulePlugin, + "dev.visor.module.handler/1.0") -namespace vizer::handler::dns { +namespace visor::handler::dns { -using namespace vizer::input::pcap; +using namespace visor::input::pcap; using json = nlohmann::json; void DnsHandlerModulePlugin::_setup_routes(HttpServer &svr) diff --git a/src/handlers/dns/DnsHandlerModulePlugin.h b/src/handlers/dns/DnsHandlerModulePlugin.h index 21aa68ac2..0f84102ee 100644 --- a/src/handlers/dns/DnsHandlerModulePlugin.h +++ b/src/handlers/dns/DnsHandlerModulePlugin.h @@ -6,7 +6,7 @@ #include "HandlerModulePlugin.h" -namespace vizer::handler::dns { +namespace visor::handler::dns { class DnsHandlerModulePlugin : public HandlerModulePlugin { @@ -16,7 +16,7 @@ class DnsHandlerModulePlugin : public HandlerModulePlugin public: explicit DnsHandlerModulePlugin(Corrade::PluginManager::AbstractManager &manager, const std::string &plugin) - : vizer::HandlerModulePlugin{manager, plugin} + : visor::HandlerModulePlugin{manager, plugin} { } diff --git a/src/handlers/dns/DnsLayer.cpp b/src/handlers/dns/DnsLayer.cpp index 9e319b8c7..ae475ff8b 100644 --- a/src/handlers/dns/DnsLayer.cpp +++ b/src/handlers/dns/DnsLayer.cpp @@ -12,7 +12,7 @@ #include #include -namespace vizer::handler::dns { +namespace visor::handler::dns { DnsLayer::DnsLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, pcpp::Packet *packet) : Layer(data, dataLen, prevLayer, packet) @@ -23,7 +23,7 @@ DnsLayer::DnsLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, pcpp::Packet m_FirstQuery = NULL; m_FirstAnswer = NULL; m_FirstAuthority = NULL; - m_FirstAdditional = NULL; + m_FirstAdditional = NULL; } @@ -838,4 +838,4 @@ bool DnsLayer::removeResource(IDnsResource* resourceToRemove) return true; } -} // namespace vizer +} // namespace visor diff --git a/src/handlers/dns/DnsLayer.h b/src/handlers/dns/DnsLayer.h index 868a49fb2..73d774de2 100644 --- a/src/handlers/dns/DnsLayer.h +++ b/src/handlers/dns/DnsLayer.h @@ -17,9 +17,9 @@ /// @file /** - * \namespace vizer + * \namespace visor */ -namespace vizer::handler::dns { +namespace visor::handler::dns { /** * @struct dnshdr @@ -29,7 +29,7 @@ namespace vizer::handler::dns { #pragma pack(push, 1) struct dnshdr { /** DNS query identification */ - uint16_t transactionID; + uint16_t transactionID; #if (BYTE_ORDER == LITTLE_ENDIAN) uint16_t /** Recursion desired flag */ @@ -485,6 +485,6 @@ struct dnshdr { } } - } // namespace vizer + } // namespace visor #endif /* PV_PACKETPP_DNS_LAYER */ diff --git a/src/handlers/dns/DnsLayerEnums.h b/src/handlers/dns/DnsLayerEnums.h index 91ec9fcd0..620761e7e 100644 --- a/src/handlers/dns/DnsLayerEnums.h +++ b/src/handlers/dns/DnsLayerEnums.h @@ -4,9 +4,9 @@ /// @file /** - * \namespace vizer + * \namespace visor */ -namespace vizer::handler::dns { +namespace visor::handler::dns { /** * An enum for all possible DNS record types */ @@ -16,8 +16,8 @@ enum DnsType { /** Name Server record */ DNS_TYPE_NS, /** Obsolete, replaced by MX */ - DNS_TYPE_MD, - /** Obsolete, replaced by MX */ + DNS_TYPE_MD, + /** Obsolete, replaced by MX */ DNS_TYPE_MF, /** Canonical name record */ DNS_TYPE_CNAME, diff --git a/src/handlers/dns/DnsResource.cpp b/src/handlers/dns/DnsResource.cpp index 466cd6434..59d5296b9 100644 --- a/src/handlers/dns/DnsResource.cpp +++ b/src/handlers/dns/DnsResource.cpp @@ -9,7 +9,7 @@ #include #include -namespace vizer::handler::dns { +namespace visor::handler::dns { IDnsResource::IDnsResource(DnsLayer *dnsLayer, size_t offsetInLayer) : m_DnsLayer(dnsLayer) diff --git a/src/handlers/dns/DnsResource.h b/src/handlers/dns/DnsResource.h index 8c79ad4d7..a8f1d2df8 100644 --- a/src/handlers/dns/DnsResource.h +++ b/src/handlers/dns/DnsResource.h @@ -11,9 +11,9 @@ /// @file /** - * \namespace vizer + * \namespace visor */ -namespace vizer::handler::dns { +namespace visor::handler::dns { // forward declarations class DnsLayer; class IDnsResourceData; @@ -24,7 +24,7 @@ class DnsResourceDataPtr; * An abstract class for representing all types of DNS records. This class gives access to all available record data such as DNS type, class, * name, type of record, etc. The DnsLayer holds an instance of (inherited type of) this class for each DNS record in the DNS packet */ - class IDnsResource +class IDnsResource { protected: friend class DnsLayer; diff --git a/src/handlers/dns/DnsResourceData.cpp b/src/handlers/dns/DnsResourceData.cpp index 78c5e974b..1d570bbcf 100644 --- a/src/handlers/dns/DnsResourceData.cpp +++ b/src/handlers/dns/DnsResourceData.cpp @@ -13,7 +13,7 @@ // forked code #pragma GCC diagnostic ignored "-Wunused-parameter" -namespace vizer::handler::dns { +namespace visor::handler::dns { size_t IDnsResourceData::decodeName(const char *encodedName, char *result, IDnsResource *dnsResource) const { diff --git a/src/handlers/dns/DnsResourceData.h b/src/handlers/dns/DnsResourceData.h index 919aa3261..227da928c 100644 --- a/src/handlers/dns/DnsResourceData.h +++ b/src/handlers/dns/DnsResourceData.h @@ -10,9 +10,9 @@ /// @file /** - * \namespace vizer + * \namespace visor */ -namespace vizer::handler::dns { +namespace visor::handler::dns { //Visual studio has always been stupid about returning something useful for __cplusplus //Only recently was this fixed - and even then it requires a specific hack to the command line during build @@ -23,7 +23,7 @@ namespace vizer::handler::dns { #define PCPP_SMART_PTR(T) std::unique_ptr #else #define PCPP_SMART_PTR(T) std::auto_ptr - #endif +#endif // forward declarations class IDnsResource; diff --git a/src/handlers/dns/DnsStreamHandler.cpp b/src/handlers/dns/DnsStreamHandler.cpp index 0d4d36605..73f546365 100644 --- a/src/handlers/dns/DnsStreamHandler.cpp +++ b/src/handlers/dns/DnsStreamHandler.cpp @@ -18,10 +18,10 @@ #include #include -namespace vizer::handler::dns { +namespace visor::handler::dns { DnsStreamHandler::DnsStreamHandler(const std::string &name, PcapInputStream *stream, uint periods, int deepSampleRate) - : vizer::StreamMetricsHandler(name, periods, deepSampleRate) + : visor::StreamMetricsHandler(name, periods, deepSampleRate) , _stream(stream) { assert(stream); diff --git a/src/handlers/dns/DnsStreamHandler.h b/src/handlers/dns/DnsStreamHandler.h index 501e0ebcb..29493deaa 100644 --- a/src/handlers/dns/DnsStreamHandler.h +++ b/src/handlers/dns/DnsStreamHandler.h @@ -20,11 +20,11 @@ #include #include -namespace vizer::handler::dns { +namespace visor::handler::dns { -using namespace vizer::input::pcap; +using namespace visor::input::pcap; -class DnsMetricsBucket final : public vizer::AbstractMetricsBucket +class DnsMetricsBucket final : public visor::AbstractMetricsBucket { public: const uint8_t START_FI_MAP_SIZE = 7; // 2^7 = 128 @@ -110,7 +110,7 @@ class DnsMetricsBucket final : public vizer::AbstractMetricsBucket return _counters; } - // vizer::AbstractMetricsBucket + // visor::AbstractMetricsBucket void specialized_merge(const AbstractMetricsBucket &other) override; void to_json(json &j) const override; @@ -119,7 +119,7 @@ class DnsMetricsBucket final : public vizer::AbstractMetricsBucket void new_dns_transaction(bool deep, float to90th, float from90th, DnsLayer &dns, PacketDirection dir, DnsTransaction xact); }; -class DnsMetricsManager final : public vizer::AbstractMetricsManager +class DnsMetricsManager final : public visor::AbstractMetricsManager { QueryResponsePairMgr _qr_pair_manager; @@ -128,7 +128,7 @@ class DnsMetricsManager final : public vizer::AbstractMetricsManager(periods, deepSampleRate) + : visor::AbstractMetricsManager(periods, deepSampleRate) { } @@ -190,7 +190,7 @@ struct TcpFlowData { } }; -class DnsStreamHandler final : public vizer::StreamMetricsHandler +class DnsStreamHandler final : public visor::StreamMetricsHandler { PcapInputStream *_stream; @@ -217,7 +217,7 @@ class DnsStreamHandler final : public vizer::StreamMetricsHandler #include -namespace vizer::handler::dns { +namespace visor::handler::dns { typedef std::pair AggDomainResult; AggDomainResult aggregateDomain(const std::string &domain); diff --git a/src/handlers/dns/querypairmgr.cpp b/src/handlers/dns/querypairmgr.cpp index 1e0cd25d0..309e4b0aa 100644 --- a/src/handlers/dns/querypairmgr.cpp +++ b/src/handlers/dns/querypairmgr.cpp @@ -17,7 +17,7 @@ static inline void timespec_diff(struct timespec *a, struct timespec *b, } } -namespace vizer::handler::dns { +namespace visor::handler::dns { void QueryResponsePairMgr::start_transaction(uint32_t flowKey, uint16_t queryID, timespec stamp) { diff --git a/src/handlers/dns/querypairmgr.h b/src/handlers/dns/querypairmgr.h index 19c14e65d..cfe531197 100644 --- a/src/handlers/dns/querypairmgr.h +++ b/src/handlers/dns/querypairmgr.h @@ -8,7 +8,7 @@ #include #include -namespace vizer::handler::dns { +namespace visor::handler::dns { using hr_clock = std::chrono::high_resolution_clock; diff --git a/src/handlers/dns/tests/test_dns.cpp b/src/handlers/dns/tests/test_dns.cpp index d0ad9086c..0bece9393 100644 --- a/src/handlers/dns/tests/test_dns.cpp +++ b/src/handlers/dns/tests/test_dns.cpp @@ -4,7 +4,7 @@ #include "dns.h" -using namespace vizer::handler::dns; +using namespace visor::handler::dns; TEST_CASE("dns", "[dns]") { diff --git a/src/handlers/dns/tests/test_dns_layer.cpp b/src/handlers/dns/tests/test_dns_layer.cpp index 572f1daa8..da9c4a68d 100644 --- a/src/handlers/dns/tests/test_dns_layer.cpp +++ b/src/handlers/dns/tests/test_dns_layer.cpp @@ -3,8 +3,8 @@ #include "DnsStreamHandler.h" #include "PcapInputStream.h" -using namespace vizer::handler::dns; -using namespace vizer::input::pcap; +using namespace visor::handler::dns; +using namespace visor::input::pcap; using namespace nlohmann; TEST_CASE("Parse DNS UDP IPv4 tests", "[pcap][ipv4][udp][dns]") diff --git a/src/handlers/net/CMakeLists.txt b/src/handlers/net/CMakeLists.txt index 27b1f41b5..68a0c62c5 100644 --- a/src/handlers/net/CMakeLists.txt +++ b/src/handlers/net/CMakeLists.txt @@ -2,24 +2,24 @@ message(STATUS "Handler Module: Net") set_directory_properties(PROPERTIES CORRADE_USE_PEDANTIC_FLAGS ON) -corrade_add_static_plugin(VizerHandlerNet +corrade_add_static_plugin(VisorHandlerNet ${CMAKE_CURRENT_BINARY_DIR} NetHandler.conf NetHandlerModulePlugin.cpp NetStreamHandler.cpp) -add_library(Vizer::Handler::Net ALIAS VizerHandlerNet) +add_library(Visor::Handler::Net ALIAS VisorHandlerNet) -target_include_directories(VizerHandlerNet +target_include_directories(VisorHandlerNet INTERFACE $ ) -target_link_libraries(VizerHandlerNet +target_link_libraries(VisorHandlerNet PUBLIC - Vizer::Input::Pcap + Visor::Input::Pcap ) -set(VIZER_STATIC_PLUGINS ${VIZER_STATIC_PLUGINS} Vizer::Handler::Net PARENT_SCOPE) +set(VISOR_STATIC_PLUGINS ${VISOR_STATIC_PLUGINS} Visor::Handler::Net PARENT_SCOPE) ## TEST SUITE add_executable(unit-tests-handler-net @@ -27,7 +27,7 @@ add_executable(unit-tests-handler-net tests/test_net_layer.cpp ) -target_link_libraries(unit-tests-handler-net PRIVATE Vizer::Handler::Net) +target_link_libraries(unit-tests-handler-net PRIVATE Visor::Handler::Net) add_test(NAME unit-tests-handler-net WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/tests diff --git a/src/handlers/net/NetHandlerModulePlugin.cpp b/src/handlers/net/NetHandlerModulePlugin.cpp index 828959e5b..66f93be53 100644 --- a/src/handlers/net/NetHandlerModulePlugin.cpp +++ b/src/handlers/net/NetHandlerModulePlugin.cpp @@ -8,12 +8,12 @@ #include #include -CORRADE_PLUGIN_REGISTER(VizerHandlerNet, vizer::handler::net::NetHandlerModulePlugin, - "dev.vizer.module.handler/1.0") +CORRADE_PLUGIN_REGISTER(VisorHandlerNet, visor::handler::net::NetHandlerModulePlugin, + "dev.visor.module.handler/1.0") -namespace vizer::handler::net { +namespace visor::handler::net { -using namespace vizer::input::pcap; +using namespace visor::input::pcap; using json = nlohmann::json; void NetHandlerModulePlugin::_setup_routes(HttpServer &svr) diff --git a/src/handlers/net/NetHandlerModulePlugin.h b/src/handlers/net/NetHandlerModulePlugin.h index 452d74f77..6344f5b9d 100644 --- a/src/handlers/net/NetHandlerModulePlugin.h +++ b/src/handlers/net/NetHandlerModulePlugin.h @@ -7,7 +7,7 @@ #include "HandlerModulePlugin.h" -namespace vizer::handler::net { +namespace visor::handler::net { class NetHandlerModulePlugin : public HandlerModulePlugin { @@ -17,7 +17,7 @@ class NetHandlerModulePlugin : public HandlerModulePlugin public: explicit NetHandlerModulePlugin(Corrade::PluginManager::AbstractManager &manager, const std::string &plugin) - : vizer::HandlerModulePlugin{manager, plugin} + : visor::HandlerModulePlugin{manager, plugin} { } diff --git a/src/handlers/net/NetStreamHandler.cpp b/src/handlers/net/NetStreamHandler.cpp index 5319811d4..5c04e1612 100644 --- a/src/handlers/net/NetStreamHandler.cpp +++ b/src/handlers/net/NetStreamHandler.cpp @@ -17,10 +17,10 @@ #include #include -namespace vizer::handler::net { +namespace visor::handler::net { NetStreamHandler::NetStreamHandler(const std::string &name, PcapInputStream *stream, uint periods, uint deepSampleRate) - : vizer::StreamMetricsHandler(name, periods, deepSampleRate) + : visor::StreamMetricsHandler(name, periods, deepSampleRate) , _stream(stream) { assert(stream); diff --git a/src/handlers/net/NetStreamHandler.h b/src/handlers/net/NetStreamHandler.h index 31e2b5b0b..6f27e8165 100644 --- a/src/handlers/net/NetStreamHandler.h +++ b/src/handlers/net/NetStreamHandler.h @@ -19,11 +19,11 @@ #include #include -namespace vizer::handler::net { +namespace visor::handler::net { -using namespace vizer::input::pcap; +using namespace visor::input::pcap; -class NetworkMetricsBucket final : public vizer::AbstractMetricsBucket +class NetworkMetricsBucket final : public visor::AbstractMetricsBucket { public: const uint8_t START_FI_MAP_SIZE = 7; // 2^7 = 128 @@ -75,7 +75,7 @@ class NetworkMetricsBucket final : public vizer::AbstractMetricsBucket return _counters; } - // vizer::AbstractMetricsBucket + // visor::AbstractMetricsBucket void specialized_merge(const AbstractMetricsBucket &other) override; void to_json(json &j) const override; @@ -90,11 +90,11 @@ class NetworkMetricsBucket final : public vizer::AbstractMetricsBucket void process_packet(bool deep, pcpp::Packet &payload, PacketDirection dir, pcpp::ProtocolType l3, pcpp::ProtocolType l4); }; -class NetworkMetricsManager final : public vizer::AbstractMetricsManager +class NetworkMetricsManager final : public visor::AbstractMetricsManager { public: NetworkMetricsManager(uint periods, int deepSampleRate) - : vizer::AbstractMetricsManager(periods, deepSampleRate) + : visor::AbstractMetricsManager(periods, deepSampleRate) { } @@ -112,7 +112,7 @@ class NetworkMetricsManager final : public vizer::AbstractMetricsManager +class NetStreamHandler final : public visor::StreamMetricsHandler { PcapInputStream *_stream; @@ -129,7 +129,7 @@ class NetStreamHandler final : public vizer::StreamMetricsHandler ) -target_link_libraries(VizerInputPcap +target_link_libraries(VisorInputPcap PUBLIC ${CONAN_LIBS_PCAPPLUSPLUS} ${CONAN_LIBS_LIBPCAP} - Vizer::Core + Visor::Core ) -set(VIZER_STATIC_PLUGINS ${VIZER_STATIC_PLUGINS} Vizer::Input::Pcap PARENT_SCOPE) +set(VISOR_STATIC_PLUGINS ${VISOR_STATIC_PLUGINS} Visor::Input::Pcap PARENT_SCOPE) ## TEST SUITE add_executable(unit-tests-input-pcap @@ -33,7 +33,7 @@ add_executable(unit-tests-input-pcap ) target_link_libraries(unit-tests-input-pcap - PRIVATE Vizer::Input::Pcap + PRIVATE Visor::Input::Pcap ) add_test(NAME unit-tests-input-pcap diff --git a/src/inputs/pcap/PcapInputModulePlugin.cpp b/src/inputs/pcap/PcapInputModulePlugin.cpp index 98cec7f6e..b718f50f1 100644 --- a/src/inputs/pcap/PcapInputModulePlugin.cpp +++ b/src/inputs/pcap/PcapInputModulePlugin.cpp @@ -6,10 +6,10 @@ #include #include -CORRADE_PLUGIN_REGISTER(VizerInputPcap, vizer::input::pcap::PcapInputModulePlugin, - "dev.vizer.module.input/1.0") +CORRADE_PLUGIN_REGISTER(VisorInputPcap, visor::input::pcap::PcapInputModulePlugin, + "dev.visor.module.input/1.0") -namespace vizer::input::pcap { +namespace visor::input::pcap { void PcapInputModulePlugin::_setup_routes(HttpServer &svr) { diff --git a/src/inputs/pcap/PcapInputModulePlugin.h b/src/inputs/pcap/PcapInputModulePlugin.h index 795b080fd..4334a0d63 100644 --- a/src/inputs/pcap/PcapInputModulePlugin.h +++ b/src/inputs/pcap/PcapInputModulePlugin.h @@ -8,9 +8,9 @@ #include "InputModulePlugin.h" #include "PcapInputStream.h" -namespace vizer::input::pcap { +namespace visor::input::pcap { -class PcapInputModulePlugin : public vizer::InputModulePlugin +class PcapInputModulePlugin : public visor::InputModulePlugin { protected: @@ -22,7 +22,7 @@ class PcapInputModulePlugin : public vizer::InputModulePlugin public: explicit PcapInputModulePlugin(Corrade::PluginManager::AbstractManager &manager, const std::string &plugin) - : vizer::InputModulePlugin{manager, plugin} + : visor::InputModulePlugin{manager, plugin} { } diff --git a/src/inputs/pcap/PcapInputStream.cpp b/src/inputs/pcap/PcapInputStream.cpp index de691d876..00f739bf2 100644 --- a/src/inputs/pcap/PcapInputStream.cpp +++ b/src/inputs/pcap/PcapInputStream.cpp @@ -27,7 +27,7 @@ using namespace std::chrono; -namespace vizer::input::pcap { +namespace visor::input::pcap { // static callbacks for PcapPlusPlus static void _tcp_message_ready_cb(int8_t side, const pcpp::TcpStreamData &tcpData, void *cookie) @@ -61,7 +61,7 @@ static void _pcap_stats_update([[maybe_unused]] pcap_stat &stats, [[maybe_unused } PcapInputStream::PcapInputStream(const std::string &name) - : vizer::InputStream(name) + : visor::InputStream(name) , _pcapDevice(nullptr) , _tcp_reassembly(_tcp_message_ready_cb, this, diff --git a/src/inputs/pcap/PcapInputStream.h b/src/inputs/pcap/PcapInputStream.h index 496735da8..53d9bef0c 100644 --- a/src/inputs/pcap/PcapInputStream.h +++ b/src/inputs/pcap/PcapInputStream.h @@ -23,7 +23,7 @@ #include "afpacket.h" #endif -namespace vizer::input::pcap { +namespace visor::input::pcap { enum class PcapSource { unknown, @@ -37,7 +37,7 @@ enum class PacketDirection { unknown }; -class PcapInputStream : public vizer::InputStream +class PcapInputStream : public visor::InputStream { private: @@ -72,7 +72,7 @@ class PcapInputStream : public vizer::InputStream PcapInputStream(const std::string &name); ~PcapInputStream(); - // vizer::AbstractModule + // visor::AbstractModule std::string schema_key() const override { return "pcap"; diff --git a/src/inputs/pcap/afpacket.cpp b/src/inputs/pcap/afpacket.cpp index 4b9644715..0e97c95e0 100644 --- a/src/inputs/pcap/afpacket.cpp +++ b/src/inputs/pcap/afpacket.cpp @@ -19,7 +19,7 @@ #include #include -namespace vizer::input::pcap { +namespace visor::input::pcap { AFPacket::AFPacket(PcapInputStream *stream, pcpp::OnPacketArrivesCallback cb, std::string filter, std::string interface_name, diff --git a/src/inputs/pcap/afpacket.h b/src/inputs/pcap/afpacket.h index 019beda0a..2858680ab 100644 --- a/src/inputs/pcap/afpacket.h +++ b/src/inputs/pcap/afpacket.h @@ -17,7 +17,7 @@ #include #include -namespace vizer::input::pcap { +namespace visor::input::pcap { const int physical_offset = TPACKET_ALIGN(sizeof(struct tpacket3_hdr)); @@ -82,4 +82,4 @@ class AFPacket final void filter_try_compile(const std::string &, struct sock_fprog *, int); -} // namespace vizer +} // namespace visor diff --git a/src/inputs/pcap/tests/test_utils.cpp b/src/inputs/pcap/tests/test_utils.cpp index bc7191f29..30fc7de27 100644 --- a/src/inputs/pcap/tests/test_utils.cpp +++ b/src/inputs/pcap/tests/test_utils.cpp @@ -2,8 +2,8 @@ #include #include -using namespace vizer; -using namespace vizer::input::pcap; +using namespace visor; +using namespace visor::input::pcap; TEST_CASE("parseHostSpec", "[utils]") { diff --git a/src/inputs/pcap/utils.cpp b/src/inputs/pcap/utils.cpp index 69723478f..8467b39c2 100644 --- a/src/inputs/pcap/utils.cpp +++ b/src/inputs/pcap/utils.cpp @@ -9,7 +9,7 @@ #include #include -namespace vizer::input::pcap { +namespace visor::input::pcap { template static void split(const std::string &s, char delim, Out result) diff --git a/src/inputs/pcap/utils.h b/src/inputs/pcap/utils.h index bcaa45d8d..1e98b7b32 100644 --- a/src/inputs/pcap/utils.h +++ b/src/inputs/pcap/utils.h @@ -11,7 +11,7 @@ #include #include -namespace vizer::input::pcap { +namespace visor::input::pcap { class PcapException : public std::runtime_error { diff --git a/src/inputs/static_plugins.h b/src/inputs/static_plugins.h index 6eaf0cf04..f32a75be8 100644 --- a/src/inputs/static_plugins.h +++ b/src/inputs/static_plugins.h @@ -1,7 +1,7 @@ int import_input_plugins() { - CORRADE_PLUGIN_IMPORT(VizerInputPcap); + CORRADE_PLUGIN_IMPORT(VisorInputPcap); return 0; } diff --git a/src/tests/test_geoip.cpp b/src/tests/test_geoip.cpp index 4815995fa..0d502f0bd 100644 --- a/src/tests/test_geoip.cpp +++ b/src/tests/test_geoip.cpp @@ -8,35 +8,35 @@ TEST_CASE("GeoIP", "[geoip]") SECTION("Geo enablement") { - CHECK(!vizer::geo::enabled()); - CHECK_THROWS(vizer::geo::GeoIP().enable("nonexistent.mmdb")); - CHECK(!vizer::geo::enabled()); - CHECK(vizer::geo::GeoIP().getGeoLocString("2a02:dac0::") == ""); - CHECK(vizer::geo::GeoASN().getASNString("2a02:dac0::") == ""); - CHECK_NOTHROW(vizer::geo::GeoIP().enable("fixtures/GeoIP2-City-Test.mmdb")); - CHECK(vizer::geo::enabled()); - CHECK_NOTHROW(vizer::geo::GeoASN().enable("fixtures/GeoIP2-ISP-Test.mmdb")); - CHECK(vizer::geo::enabled()); + CHECK(!visor::geo::enabled()); + CHECK_THROWS(visor::geo::GeoIP().enable("nonexistent.mmdb")); + CHECK(!visor::geo::enabled()); + CHECK(visor::geo::GeoIP().getGeoLocString("2a02:dac0::") == ""); + CHECK(visor::geo::GeoASN().getASNString("2a02:dac0::") == ""); + CHECK_NOTHROW(visor::geo::GeoIP().enable("fixtures/GeoIP2-City-Test.mmdb")); + CHECK(visor::geo::enabled()); + CHECK_NOTHROW(visor::geo::GeoASN().enable("fixtures/GeoIP2-ISP-Test.mmdb")); + CHECK(visor::geo::enabled()); } SECTION("basic Geo lookup") { - CHECK(vizer::geo::GeoIP().enabled()); - CHECK(vizer::geo::GeoIP().getGeoLocString("2a02:dac0::") == "EU/Russia"); - CHECK(vizer::geo::GeoIP().getGeoLocString("89.160.20.112") == "EU/Sweden/E/Linköping"); - CHECK(vizer::geo::GeoIP().getGeoLocString("216.160.83.56") == "NA/United States/WA/Milton"); + CHECK(visor::geo::GeoIP().enabled()); + CHECK(visor::geo::GeoIP().getGeoLocString("2a02:dac0::") == "EU/Russia"); + CHECK(visor::geo::GeoIP().getGeoLocString("89.160.20.112") == "EU/Sweden/E/Linköping"); + CHECK(visor::geo::GeoIP().getGeoLocString("216.160.83.56") == "NA/United States/WA/Milton"); } SECTION("basic ASN lookup") { - CHECK(vizer::geo::GeoASN().enabled()); - CHECK(vizer::geo::GeoASN().getASNString("1.128.0.0") == "1221/Telstra Pty Ltd"); + CHECK(visor::geo::GeoASN().enabled()); + CHECK(visor::geo::GeoASN().getASNString("1.128.0.0") == "1221/Telstra Pty Ltd"); } SECTION("basic unknown") { - CHECK(vizer::geo::GeoASN().enabled()); - CHECK(vizer::geo::GeoASN().getASNString("6.6.6.6") == "Unknown"); + CHECK(visor::geo::GeoASN().enabled()); + CHECK(visor::geo::GeoASN().getASNString("6.6.6.6") == "Unknown"); } SECTION("basic Geo lookup, socket") @@ -44,11 +44,11 @@ TEST_CASE("GeoIP", "[geoip]") struct sockaddr_in sa4; sa4.sin_family = AF_INET; inet_pton(AF_INET, "89.160.20.112", &sa4.sin_addr.s_addr); - CHECK(vizer::geo::GeoIP().getGeoLocString((struct sockaddr *)&sa4) == "EU/Sweden/E/Linköping"); + CHECK(visor::geo::GeoIP().getGeoLocString((struct sockaddr *)&sa4) == "EU/Sweden/E/Linköping"); struct sockaddr_in6 sa6; sa6.sin6_family = AF_INET6; inet_pton(AF_INET6, "2a02:dac0::", &sa6.sin6_addr); - CHECK(vizer::geo::GeoIP().getGeoLocString((struct sockaddr *)&sa6) == "EU/Russia"); + CHECK(visor::geo::GeoIP().getGeoLocString((struct sockaddr *)&sa6) == "EU/Russia"); } SECTION("basic ASN lookup, socket") @@ -56,10 +56,10 @@ TEST_CASE("GeoIP", "[geoip]") struct sockaddr_in sa4; sa4.sin_family = AF_INET; inet_pton(AF_INET, "1.128.0.0", &sa4.sin_addr.s_addr); - CHECK(vizer::geo::GeoASN().getASNString((struct sockaddr *)&sa4) == "1221/Telstra Pty Ltd"); + CHECK(visor::geo::GeoASN().getASNString((struct sockaddr *)&sa4) == "1221/Telstra Pty Ltd"); struct sockaddr_in6 sa6; sa6.sin6_family = AF_INET6; inet_pton(AF_INET6, "2401:8080::", &sa6.sin6_addr); - CHECK(vizer::geo::GeoASN().getASNString((struct sockaddr *)&sa6) == "237/Merit Network Inc."); + CHECK(visor::geo::GeoASN().getASNString((struct sockaddr *)&sa6) == "237/Merit Network Inc."); } } diff --git a/src/tests/test_metrics.cpp b/src/tests/test_metrics.cpp index 4be9d8644..239bd060e 100644 --- a/src/tests/test_metrics.cpp +++ b/src/tests/test_metrics.cpp @@ -1,7 +1,7 @@ #include "AbstractMetricsManager.h" #include -using namespace vizer; +using namespace visor; class TestMetricsBucket : public AbstractMetricsBucket { diff --git a/src/vizer_config.h.in b/src/visor_config.h.in similarity index 69% rename from src/vizer_config.h.in rename to src/visor_config.h.in index e76752a3a..53412be0d 100644 --- a/src/vizer_config.h.in +++ b/src/visor_config.h.in @@ -4,5 +4,5 @@ #pragma once -#cmakedefine VIZER_VERSION_NUM "@VIZER_VERSION_NUM@" -#cmakedefine VIZER_VERSION "@VIZER_VERSION@" +#cmakedefine VISOR_VERSION_NUM "@VISOR_VERSION_NUM@" +#cmakedefine VISOR_VERSION "@VISOR_VERSION@"